阵列组合的差异

I'm trying to build an array and while doing so, I was wondering if it makes any difference in how you create such array. Things I have in mind are performance, maintainability, readability,...

Declaration 1:

$data = array(
    'my_array' => array(
    'table' => array(
       'group' => t('My group'),
       'join'  => array(
          'commerce_product' => array(
             'left_field'  => 'sku',
             'field'       => 'artc',
           ),
        ),
     );

Declaration 2:

$data['my_array']['table']['group'] = 'My group';
$data['my_array']['table']['join']['commerce_product'] = array(
    'left_field'  => 'sku',
    'field'       => 'artc',);

Because for some reason, my Drupal site accepts the first declaration but not the second. Since it's about creating arrays in PHP I don't think it has something to do with Drupal, rather with the way the array is created...

The feature of automatically creating an array with the second syntax (assigning a value to a key in a non-existent variable) is a more recent feature than using the array syntax.

Check the PHP version installed on your two servers.