数组,如何合并成一个数组 array"/>
两个有关联的数组,如何合并成一个数组 array
思路
第一步:我们先将array2中name取出,生成一个新数组(使用array_colum函数)
第二步:将新数组做为键,array2数组做为值,使用array_combine合并成一个新数组
第三步:使用array_walk或foreach 循环处理数值
function use() 匿名函数,use是引用外部变量
代码
$array1=array("英雄联盟"=>array("name"=>"英雄联盟","money"=>100,"pay"=>200),"地下城与勇士"=>array("name"=>"地下城与勇士","money"=>500,"pay"=>100));$array2=array("0"=>array("name"=>"英雄联盟","money"=>400,"pay"=>300),"1"=>array("name"=>"地下城与勇士","money"=>150,"pay"=>600));$array3=array_combine(array_column($array2,"name"),$array2);
array_walk($array1,function($v,$k) use(&$array3){array_walk_recursive($v,function($val,$key) use (&$array3,$k){if($key!='name'){$array3[$k][$key]+=$val;} });
});print_r($array3);
结果:
Array
([英雄联盟] => Array([name] => 英雄联盟[money] => 500[pay] => 500)[地下城与勇士] => Array([name] => 地下城与勇士[money] => 650[pay] => 700))
更多推荐
两个有关联的数组,如何合并成一个数组 array
发布评论