如何递归合并两个多维阵列

问题描述 投票:0回答:2
$var1=array(); $myInputVar=array(); $var1['something']['secondary_something'][]="foo1"; $var1['something']['secondary_something'][]="foo2"; $var1['something']['secondary_something'][]="foo3"; $myInputVar['something']['secondary_something'][]="foo4"; $myInputVar['something']['secondary_something'][]="foo5"; function something(&$array_, $array_new) { $array = array_merge($array_ , $array_new); print_r($array);//for debugging } something($var1, $myInputVar);

现在打印:
Array ( [something] => Array ( [secondary_something] => Array ( [0] => foo1 [1] => foo2 [2] => foo3 ) ) )

当我期待:
Array ( [something] => Array ( [secondary_something] => Array ( [0] => foo1 [1] => foo2 [2] => foo3 [3] => foo4 [4] => foo5) ) )

我也尝试了:

$array = $array_ + $array_new;

仍然没有打印我的期望。 我有一种感觉,我误解了

array_merge()
功能的目的,这就是为什么它不返回结果我期望它会返回的结果。

任何想法?


array_merge_recursive()

将从从左到右工作。在您的情况下:
php arrays recursion multidimensional-array array-merge
2个回答
1
投票
array_merge

将被


$array_['something']['secondary_something'] 您可以做以下操作:


0
投票

,否则,您需要创建一个函数,该函数了解关联密钥并将适当地组合数组。


function something(&$array_, $array_new) { $array = array_merge($array_ , $array_new); return $array; } $var1['something']['secondary_something'] = something($var1['something']['secondary_something'], $myInputVar['something']['secondary_something']);
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.