加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php多维数组合并_php合并多维数组,递归合并

发布时间:2022-12-17 15:32:59 所属栏目:PHP教程 来源:未知
导读: php有array_merge合并数组功能,但是有个问题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));

输出结果如下

83779d51fb06eca3adc6ef99ec50081e.png

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!