如何在php中添加具有公共索引的两个数组的值?

时间:2015-05-15 10:32:37

标签: php arrays sum

考虑以下数组:

包含内容的数组1:

index1    value2
a         5
b         6
c         2

包含内容的数组2:

index2   value2
a         4
b         2

我需要一个数组3,它应该是上述2个数组的总和。 类似的东西:

index     value
a           9
b           8
c           2

2 个答案:

答案 0 :(得分:1)

此功能将是您所需要的:

function array_merge_with_sum_values(array $array1, array $array2){
        $finalArray = array_merge($array1, $array2);
        $keys = array_keys($finalArray);
        foreach($keys as $key){
            if(isset($array1[$key]) && isset($array2[$key])){
                $finalArray[$key] = $array1[$key] + $array2[$key];
            }
        }
        return $finalArray;
    }

答案 1 :(得分:0)

也许这可以帮到你:

$array_first = ['a'=>5,'b'=>6,'c'=>2];
$array_second = ['a'=>4,'b'=>2];
function sum_array($array_first,$array_second){
$array_result = [];
foreach ($array_first as $key => $value) {
    if(isset($array_second[$key])){
        $array_result[$key] = $array_second[$key] + $array_first[$key];
    }else{
        $array_result[$key] = $array_first[$key];
    }
}
return $array_result;}
var_dump(sum_array($array_first,$array_second));

结果:

 array(3) {
  ["a"]=>
  int(9)
  ["b"]=>
  int(8)
  ["c"]=>
  int(2)
}