$arr1 = array('apple' => 1, 'mango'=>5, 'banana'=>3 );
$arr2 = array('apple' => 3, 'banana'=>2 );
我的结果数组应该是
array('apple'=>4, 'mango'=>5,'banana'=>5);
我该怎么做?
答案 0 :(得分:7)
你可以这样做:
foreach($arr2 as $key=>$val) {
if(isset($arr1[$key])) {
$arr1[$key] += $val;
} else {
$arr1[$key] = $val;
}
}
答案 1 :(得分:0)
如果你真的想要一个漂亮的单行,那么这就可以解决当前的问题
array_walk($arr1, create_function('&$item,$key,$arr2', '$item += $arr2[$key] ;'),$arr2);
这使用$ array ['non-existing-key']的PHP技巧评估为零。但是在现实生活中我会把它写成
function walk(&$item,$key,$arr2) {
$item = array_key_exists($key,$arr2) ? $item + $arr2[$key] : $item;
}
array_walk($arr1,'walk',$arr2);