PHP:合并2个多维数组

时间:2009-10-13 05:10:22

标签: php multidimensional-array

我需要将两个多维数组合并在一起以创建一个新数组 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++;
}

我该如何纠正?

3 个答案:

答案 0 :(得分:20)

使用任何一种内置数组函数:

array_merge_recursivearray_replace_recursive

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

答案 1 :(得分:13)

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

[]将它附加到数组而不是覆盖。

答案 2 :(得分:3)

使用just循环和数组表示法:

$newArray = array();
$i=0;
foreach($arary1 as $value){
  $newArray[$i] = $value;
  $newArray[$i][] = $array2["name"][$i];
  $i++;
}