对二维数组中的列值求和[重复]

问题描述 投票:0回答:3

我有一个像这样的二维数组:

[
    ['name' => 'Banana', 'quantity' => 124],
    ['name' => 'Cherry', 'quantity' => 24],
    ['name' => 'Apple', 'quantity' => 224],
]

如何使用

quantity
键对数字求和? (372)

php arrays multidimensional-array sum array-column
3个回答
3
投票

请随时与我们分享您的尝试。

对我们帮助很大。

您可以使用:

$arr = [['name' => "Banana", 'quantity' => 124], ['name' => "Cherry", 'quantity' => 24], ['name' => "Apple", 'quantity' => 224]];

$sum = 0;
foreach ($arr as $item) {
    $sum += $item['quantity'];
}

或者(PHP 5.5+):

$sum = array_sum(array_column($arr, 'quantity'));

0
投票
/*
    Receives a Multidemensional Array (Matrix) and returns the sum of quantity.
    Returns -1 on fail.
*/
function SumKeyOfArray($Matrix)
{
    if(!empty($Matrix))
    {
        $sum = 0;       
        foreach($Matrix as $array)
        {
            if(isset($array['quantity']))
                $sum = $sum + $array['quantity'];
        }
        return $sum;
    }
    return -1;
}

0
投票

另一种选择是使用reduce函数:

$arr= [['name' => "Banana", 'quantity' => 124], ['name' => "Cherry", 'quantity' => 24], ['name' => "Apple", 'quantity' => 224]];

echo array_reduce($arr, function($sum, $elem) {
    return $sum += $elem["quantity"];
});
© www.soinside.com 2019 - 2024. All rights reserved.