PHP 中两个关联多维数组的值求和

2024-05-12

我正在尝试对两个关联数组的值求和。这是第一个数组:

Array
(
[Jan 01, 2013] => Array
    (
        [COM] => 100
        [RES] => 200
    )

[Oct 28, 2014] => Array
    (
        [COM] => 300
        [RES] => 400
    )
)

这是第二个数组:

Array
(
[Jan 01, 2013] => Array
    (
        [COM] => 10
        [RES] => 20
    )

[Oct 28, 2014] => Array
    (
        [COM] => 30
        [RES] => 40
    )
)

我需要将这两个数组的值相加,以便产生以下结果:

    Array
(
[Jan 01, 2013] => Array
    (
        [COM] => 110
        [RES] => 220
    )

[Oct 28, 2014] => Array
    (
        [COM] => 330
        [RES] => 440
    )
)

我找到了这个tutorial http://ardamis.com/2009/10/12/php-function-sum-values-associative-arrays/对关联数组的值求和,但它似乎不适用于我的多维数组。有什么建议如何实现这一点吗?谢谢。


Use foreach()对于第一个数组并检查第一个数组的键是否存在于第二个数组中。如果存在则计算总和。例子:

$arr1 = Array
(
    "Jan 01, 2013" => Array
    (
        "COM" => 100,
        "RES" => 200,
    ),

    "Oct 28, 2014" => Array
    (
        "COM" => 300,
        "RES" => 400,
    )
);
$arr2 = Array
(
    "Jan 01, 2013" => Array
    (
        "COM" => 10,
        "RES" => 20,
    ),

    "Oct 28, 2014" => Array
    (
        "COM" => 30,
        "RES" => 40,
   )
);

$arr3 = array();
foreach($arr1 as $key => $val):
    if(array_key_exists($key, $arr2)):
        $arr3[$key]["COM"] = $val["COM"] + $arr2[$key]["COM"];
        $arr3[$key]["RES"] = $val["RES"] + $arr2[$key]["RES"];
    endif;
endforeach;

print '<pre>';
print_r($arr3);
print '</pre>';

Output:

Array
(
    [Jan 01, 2013] => Array
        (
            [COM] => 110
            [RES] => 220
        )

    [Oct 28, 2014] => Array
        (
            [COM] => 330
            [RES] => 440
        )

)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 中两个关联多维数组的值求和 的相关文章

随机推荐