php合并多维数组,php合并二维数组,完美解决array_replace_recursive的bug

<?php
/*
合并多维数组
$arr_default会覆盖$arr
*/
function dd_array_merge($arr,$arr_default){
  $rs = [];
  //取所有键名
  $foo[] = array_keys($arr_default);
  $foo[] = array_keys($arr);
  $names = array_merge(...$foo);    //如果是低版本php,将此行换成  $names = array_merge($foo[0],$foo[1]); 
  $names = array_unique($names);
  foreach($names as $a){
    if(isset($arr_default[$a])&&is_array($arr_default[$a])){
      $rs[$a] = dd_array_merge($arr[$a],$arr_default[$a]);
    }else{
      $rs[$a] = isset($arr[$a])?$arr[$a]:$arr_default[$a];
    }
  }
  return $rs;
}   


 

猜你喜欢

转载自www.cnblogs.com/echo2213/p/12348816.html