在PHP中合并两个数组,而不更改第一个数组的结构
合并的预期结果:在PHP中合并两个数组,而不更改第一个数组的结构,php,arrays,merge,Php,Arrays,Merge,合并的预期结果: $arr1 = array('foo'=>array('green'=>10, 'flowers'=>20), 'bar'=>20); $arr2 = array('red'=>'roses', 'blue'=>'sky', foo=>array('flowers'=>15), 'bar'=>array('demo'=>'asdf')); 我已经为此编写了一个递归函数,但我想知道在PHP中是否有更优雅的方法来实现这一
$arr1 = array('foo'=>array('green'=>10, 'flowers'=>20), 'bar'=>20);
$arr2 = array('red'=>'roses', 'blue'=>'sky', foo=>array('flowers'=>15), 'bar'=>array('demo'=>'asdf'));
我已经为此编写了一个递归函数,但我想知道在PHP中是否有更优雅的方法来实现这一点
这是我的职责:
array('foo'=>array('green'=>10, 'flowers'=>15), 'bar'=>array('demo'=>'asdf'));
function array_overwrite_recursive($arr1, $arr2) {
foreach($arr1 As $k=>$v) {
if(is_array($arr1[$k])) {
$arr1[$k] = array_overwrite_recursive($arr1[$k], $arr2[$k]);
} else {
if(isset($arr2[$k])) $arr1[$k]=$arr2[$k];
}
}
return $arr1;
}