Мне нужно объединить 2 многомерных массива вместе, чтобы создать новый массив.
2 массива создаются из $_POST
и $_FILES
и мне нужно, чтобы они были связаны друг с другом.
Массив # 1
Array ( [0] => Array ( [0] => 123 [1] => "Title #1" [2] => "Name #1" ) [1] => Array ( [0] => 124 [1] => "Title #2" [2] => "Name #2" ) )
Массив # 2
Array ( [name] => Array ( [0] => Image001.jpg [1] => Image002.jpg ) )
Новый массив
Array ( [0] => Array ( [0] => 123 [1] => "Title #1" [2] => "Name #1" [3] => "Image001.jpg" ) [1] => Array ( [0] => 124 [1] => "Title #2" [2] => "Name #2" [3] => "Image002.jpg" ) )
В текущем коде я использую работы, но только для последнего элемента массива.
Я предполагаю, что, array_merge
функцию array_merge
он стирает мой новый массив в каждом цикле.
$i=0; $NewArray = array(); foreach($OriginalArray as $value) { $NewArray = array_merge($value,array($_FILES['Upload']['name'][$i])); $i++; }
Как это исправить?
$i=0; $NewArray = array(); foreach($OriginalArray as $value) { $NewArray[] = array_merge($value,array($_FILES['Upload']['name'][$i])); $i++; }
[] добавит его в массив вместо перезаписи.
Используйте одну из встроенных функций массива:
array_merge_recursive или array_replace_recursive
Использование только циклов и обозначений массива:
$newArray = array(); $i=0; foreach($arary1 as $value){ $newArray[$i] = $value; $newArray[$i][] = $array2["name"][$i]; $i++; }