Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中合并两个数组,而不更改第一个数组的结构_Php_Arrays_Merge - Fatal编程技术网

在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;
}