我有2个阵列:
$bigArr = array(
'simple'=>1
'advanced'=>array(
'advanceSimple'=>1,
'advanceadvance'=>array(
'simple'=>1
)
)
)
$overide = array(
'advanced'=>array(
'advanceSimple'=>2,
'extra'=>5
)
)
这两者的合并应该是:
$bigArr = array(
'simple'=>1
'advanced'=>array(
'advanceSimple'=>2,
'extra'=>5,
'advanceadvance'=>array(
'simple'=>1
)
)
)
你看到小阵列的覆盖将仅覆盖密钥所在的位置,并且会在不存在的位置添加数据。
我尝试了许多递归迭代器和循环的方法,但仍然没有。
您有任何想法或类似的解决方法。
答案 0 :(得分:1)
$bigArr = array(
'simple'=>1,
'advanced'=>array(
'advanceSimple'=>1,
'advanceadvance'=>array(
'simple'=>1
)
)
);
$overide = array(
'advanced'=>array(
'advanceSimple'=>2,
'extra'=>5
)
);
$res = array_merge_recursive($bigArr,$overide);
是你需要的吗?
答案 1 :(得分:0)
回答PHP 5.3 +
$bigArr = array(
'simple'=>1,
'advanced'=>array(
'advanceSimple'=>1,
'advanceadvance'=>array(
'simple'=>1
)
)
);
$overide = array(
'advanced'=>array(
'advanceSimple'=>2,
'extra'=>5
)
);
$array = array_replace_recursive($bigArr,$overide);
echo "<pre>";
print_R($array);