通过添加两个数组的值来合并它们


Merge two arrays by adding their values

所以我有两个数组,我想通过将具有相同键的值相加将它们合并到一个数组中。

array &a
    Array
    (
        [0] => 4
        [1] => 10
        [2] => 3
        [3] => 10
        [4] => 7
    )
  array &b
    Array
    (
        [0] => 
        [1] => 1
        [2] => 2
        [3] => 2
        [4] => 2
    )

我希望结果数组为

 Array
    (
        [0] => 4
        [1] => 11
        [2] => 5
        [3] => 12
        [4] => 9
    )

您可以同时使用 array_map() 遍历两个数组。然后,您只需将两个元素加在一起,然后将其作为新元素返回即可。

法典

$result = array_map(function($v1, $v2){
    return $v1 + $v2;
}, $a, $b);

使用以下代码:-

$a = [4,10,3,10,7];
$b = ['',1,2,2,2];
$res = [];
foreach($a as $k=>$v){
   $res[] = $v + $b[$k]; 
}
echo '<pre>'; print_r($res);

输出:-

Array
(
    [0] => 4
    [1] => 11
    [2] => 5
    [3] => 12
    [4] => 9
)

如果第二个数组$b没有与第一个数组相似的记录数$a则,

$a = [4,10,3,10,7];
$b = ['',1,2,2];  // removed last record
$res = [];
foreach($a as $k=>$v){
   $res[] = $v + (!empty($b[$k]) ? $b[$k] : 0); 
}
echo '<pre>'; print_r($res);

输出:-

Array
(
    [0] => 4
    [1] => 11
    [2] => 5
    [3] => 12
    [4] => 7
)