所以基本上我有两个想要合并的数组...
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 应该能得到我想要的东西,但显然没有。我的问题有什么解决方案吗?
谢谢
最佳答案
数组在相同的“级别”上合并。您的数组不在同一级别上重叠,一个数组的顶级值是“第一个”,另一个数组的顶级值是“第二个”。因此,它会生成一个新数组,其中两个数组都位于顶层。
要达到您想要的结果,您需要填写
array_merge_recursive($arr1['first'], $arr2)
然后它们会匹配并按照您的期望同等地组合。
您还可以编写一些函数,递归地遍历数组,找到数组匹配的级别,然后从那里调用 array_merge_recursive
。
关于PHP array_merge_recursive 不能按我的意愿工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038542/