2014-01-19 2 views
1

В идеале я хотел бы добавить третий массив в массив из 2 массивов. Я пробовал array_push, array_merge и array_merge_recursive. Вот соответствующий код:Добавление массива в массив массивов

$array1 = array("color" => "red", "shape" => "triangle"); 
$array2 = array("color" => "green", "shape" => "trapezoid"); 
$array3 = array("color" => "blue", "shape" => "square"); 
$result = array($array1, $array2); 
$result = array_merge($result, $array3); 
print_r($result); 

Этот текущий код возвращает: Array ([0] => Array ([цвет] => красный [форма] => треугольник) [1] => Array ([цвет] => зеленый [форма] => трапеция) [цвет] => синий [форма] => квадрат)

Проблема в том, что мне это нужно, чтобы номер 3-го массива. Таким образом, [0], [1] и [2]

+0

Что случилось с этим? Ваш образец кода работает. 'array_push ($ result, $ array3)' также работает. – m59

+0

Я не получаю номер для третьего массива – user3211305

+0

для ($ i = 0; $ i '; \t} – user3211305

ответ

0
$array1 = array("color" => "red", "shape" => "triangle"); 
$array2 = array("color" => "green", "shape" => "trapezoid"); 
$array3 = array("color" => "blue", "shape" => "square"); 

$result = array($array1, $array2); 

array_push($result, $array3); 

array_push это путь, потому что вы будете добавлять новый массив в массив массивов. Проблема с array_merge заключается в том, что она принимает содержимое $array3 (а не сам массив) и добавляет их в $result.

Когда вы сказали, что вы ранее пробовали array_push Я предполагаю, что вы неправильно использовали это: $result = array_push($result, $array3);, который перепишет результат, который вы ищете, с длиной созданного массива, а не массив, который вы Создание.

1

Вы объединяете массив строк ($array3) с массивом массивов ($result).

Для достижения желаемого результата, вы должны либо сделать

$result = array($array1, $array2, $array3); 

или использовать array_push() вместо array_merge()

$result = array($array1, $array2); 
array_push($result, $array3); 
Смежные вопросы