PHP: объединить 2 многомерных массива

Мне нужно объединить 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 стирает мой новый массив в каждом цикле.

$i=0;
$NewArray = array();
foreach($OriginalArray as $value) {
    $NewArray = array_merge($value,array($_FILES['Upload']['name'][$i]));
    $i++;
}

Как это исправить?


person ticallian    schedule 13.10.2009    source источник


Ответы (3)


$i=0;
$NewArray = array();
foreach($OriginalArray as $value) {
    $NewArray[] = array_merge($value,array($_FILES['Upload']['name'][$i]));
    $i++;
}

[] добавит его в массив вместо перезаписи.

person Jay Paroline    schedule 13.10.2009

Используйте любую из встроенных функций массива:

array_merge_recursive or array_replace_recursive

http://php.net/manual/en/function.array-merge-recursive.php

person wintondeshong    schedule 20.11.2012

Используя только циклы и нотацию массива:

$newArray = array();
$i=0;
foreach($arary1 as $value){
  $newArray[$i] = $value;
  $newArray[$i][] = $array2["name"][$i];
  $i++;
}
person Marius    schedule 13.10.2009
comment
Извините меня. У меня такая же проблема. Я хочу спросить, когда массив № 1 имеет разную длину › массив № 2. Я хочу указать значение для массива № 2 ImageEmpty.jpg. спасибо перед - person Stfvns; 19.12.2015