PHP数组元素总和

时间:2015-12-04 08:00:22

标签: php

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]。

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以使用array_maparray_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));

答案 1 :(得分:2)

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

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

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