2016-02-22 2 views
-1

Мой вопрос состоит из двух частей. Первый вопрос, это нормально, чтобы назначить многомерный массив таким образом:Являются ли эти утверждения равными? Многомерный массив PHP

$sandwhich => array(
    'bread', 'meat', 'tomato' 
); 
$cereal => array(
    'milk', 'cherrios', 'bannana' 
); 
$food = array(
    $sandwhich, $cereal 
); 

И мой второй вопрос, будет выше $food массив эквивалентен:

$food = array(
    $sandwhich => array(
     'bread', 'meat', 'tomato' 
    ) 
    $cereal => array(
     'milk', 'cherrios', 'bannana' 
    ) 
); 

Спасибо,

+0

Если вы хотите знать, если 2 массивы равны, просто сделать: 'var_dump ($ array1 === $ array2); ' – Rizier123

+0

сказать print_r в обоих случаях, чтобы посмотреть результат – splash58

+0

1. Да, это нормально, если вам это нужно. 2. Вы можете просто назвать их $ food1 и $ food2, а затем сравнить, если они эквивалентны. – tanjir

ответ

1

Нет, они не эквивалентны ...

Первый определяет массив, содержащий два других массива, каждый из которых содержит 3 строки. Это ничем не отличается от того, если бы вы выписали, в полном объеме.

$food = array(); 
$food[0] = array(); 
$food[0][0] = 'bread'; 
$food[0][1] = 'meat'; 
etc... 
$food[1][2] = 'bannana'; 

Второй вызовет undefined variable, так как вы не определили $sandwich или $cereal, и вы бы assignin ваших два подмассивов в пустую струну ключа:

$food = array(
    "" => array(...), 
    "" => array(...) 
); 

С эти две клавиши одинаковы (пустые строки), вы получите массив, содержащий ОДИН другой массив, последний из которых вы добавили.

И если $sandwich или $cereal были определены как массивы previo usly, тогда вы получите предупреждение о недопустимом смещении и в итоге получите пустой массив.

1

В первую очередь мы не можем назначить =>, вместо этого мы используем оператор =.

для первой части, это правильный syntaxe:

$sandwhich = array('bread', 'meat', 'tomato'); 

$cereal = array('milk', 'cherrios', 'bannana'); 

$food = array(); 
$food[] = $sandwhich; 
$food[] = $cereal; 

для второй части:

$food = array(
    'sandwich' => array('bread', 'meat', 'tomato'), 
    'cereal' => array('milk', 'cherrios', 'bannana') 
); 
Смежные вопросы