php多维数组合并_php合并多维数组,递归合并
php有array_merge合并数组功能,但是有个问题PHP多维数组,这个函数只合并一维数组,如果有多维数组,则后面的会覆盖前面数组中的子节点,因此写啦另一个深度合并的函数来合并子节点的元素/** *深度合并数组 *@DateTime2020-01-11 *@Authormokuyu * *@param[type]$arrs[description] *@return[type] */ functionarray_merge_deep(...$arrs) { $merged=[]; while($arrs){ $array=array_shift($arrs); if(!$array){continue;} foreach($arrayas$key=>$value){ if(is_string($key)){ if(is_array($value)&&array_key_exists($key,$merged) &&is_array($merged[$key])){ $merged[$key]=array_merge_deep(...[$merged[$key],$value]); }else{ $merged[$key]=$value; } }else{ $merged[]=$value; } } } return$merged; } $arr1=[ 'oss'=>[ 'access_key_id'=>'asdfasdfsdf', 'app_secket'=>'', ], ]; $arr2=[ 'oss'=>[ 'on'=>true, 'domain'=>'#39;, ], ]; var_dump(array_merge($arr1,$arr2)); var_dump(array_merge_deep($arr1,$arr2)); 输出结果如下 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |