我需要将两个多维数组合并在一起以创建一个新数组
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++;
}
我该如何纠正?
答案 0 :(得分:20)
使用任何一种内置数组函数:
array_merge_recursive
或array_replace_recursive
答案 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++;
}