如何对多维数组中的所有列值求和?

新手上路,请多包涵

如何通过关联键添加所有列值?请注意,键集是动态的。

输入数组:

 Array
(
    [0] => Array
        (
            [gozhi] => 2
            [uzorong] => 1
            [ngangla] => 4
            [langthel] => 5
        )

    [1] => Array
        (
            [gozhi] => 5
            [uzorong] => 0
            [ngangla] => 3
            [langthel] => 2
        )

    [2] => Array
        (
            [gozhi] => 3
            [uzorong] => 0
            [ngangla] => 1
            [langthel] => 3
        )
)

期望的结果:

 Array
(
    [gozhi] => 10
    [uzorong] => 1
    [ngangla] => 8
    [langthel] => 10
)

原文由 marknt15 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 256
2 个回答
$sumArray = array();

foreach ($myArray as $k=>$subArray) {
  foreach ($subArray as $id=>$value) {
    $sumArray[$id]+=$value;
  }
}

print_r($sumArray);

原文由 Chris J 发布,翻译遵循 CC BY-SA 4.0 许可协议

array_reduce() 的简单示例

$numbers = [10,20,30];

$total = 0;

foreach ($numbers as $number) {
    $total += $number;
}

echo $total; // 60

=>

 $numbers = [10,20,30];

$total  = array_reduce($numbers, function ($previous, $current) {
    return $previous + $current;
});

echo $total; // 60

使用关联数组:

 $carts = [
    ['item' => 'A', 'qty' => 2, 'price' => 10],
    ['item' => 'B', 'qty' => 3, 'price' => 20],
    ['item' => 'C', 'qty' => 5, 'price' => 30]
];

$total = array_reduce(
    $carts,
    function ($prev, $item) {
        return $prev + $item['qty'] * $item['price'];
    }
);

echo $total; // 155

更多信息 => https://www.phptutorial.net/php-tutorial/php-array_reduce/

原文由 DMat 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题