PHP 数组元素总和


PHP Array Elements Sum

Array
(
    [Item 1] => Array
        (
            [0] => 8
            [1] => 5
            [2] => 4
        )
    [Item 2] => Array
        (
            [0] => 24
            [1] => 4
        )
    [Item 3] => Array
        (
            [0] => 23
            [1] => 4
        )
}

如何将数组元素加在一起,使它们成为

Array
(
    [Item 1] => Array
        (
            [0] => 17
        )
    [Item 2] => Array
        (
            [0] => 28
        )
    [Item 3] => Array
        (
            [0] => 27
        )
}

我以前使用 array_merge_recursive 将 2 个相同键的数组合并在一起,但现在我想将它们的元素加在一起,这样它们只有元素 [0]。

谢谢!

您可以使用

array_map和array_sum来实现您的目标:

$array = array('Item1' => array(1, 3), 'Item2' => array(3, 4));
$array = array_map(function($item) {
    return array_sum($item);
}, $array);
echo '<pre>';
var_dump($array);
echo '</pre>';

结果将是:

array(2) {
  ["Item1"]=>
  int(4)
  ["Item2"]=>
  int(7)
}

如果您确实需要结果是一个包含项目总和的数组,则将返回更改为:

return array(array_sum($item));

也许你可以像这样走很长的路

foreach($array as $key => $element){
    $sum = 0;
    foreach($element as $value){
        $sum += $value;
    }
    $result[$key][0] = $sum;
}

基本上像这样,您将浏览数组的每个元素,然后创建所需元素的总和