所以基本上我有两个我要合并的数组...
array(1) {
["first"]=>
array(1) {
["second"]=>
array(0) {
}
}
}
array(1) {
["second"]=>
array(1) {
["third"]=>
array(0) {
}
}
}
这是我想要实现的结果......
array(1) {
["first"]=>
array(1) {
["second"]=>
array(1) {
["third"]=>
array(0) {
}
}
}
}
但是使用$arr = array_merge_recursive($arr1, $arr2)
我得到了这个输出:
array(2) {
["first"]=>
array(1) {
["second"]=>
array(0) {
}
}
["second"]=>
array(1) {
["third"]=>
array(0) {
}
}
}
据我所知,array_merge_recursive应该能得到我想要的东西,但显然不是。什么是我的问题的解决方案?
由于
答案 0 :(得分:2)
数组在相同的“级别”上合并。您的数组在同一级别上不重叠,一个顶级值为“first”,另一个为“second”。因此,它会产生一个新阵列,两个阵列都位于顶层。
要达到您想要的效果,您需要填写
array_merge_recursive($arr1['first'], $arr2)
然后他们匹配,并将平等地结合您的期望。
您还可以编写一些函数,以递归方式遍历数组,找到数组匹配的级别,然后从那里调用array_merge_recursive
。
答案 1 :(得分:1)
$array2 = array('third' => array());
$array1['first']['second'] = $array2;