Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中多维数组的求和值_Php_Arrays - Fatal编程技术网

PHP中多维数组的求和值

PHP中多维数组的求和值,php,arrays,Php,Arrays,假设我在PHP中有这个数组: Array ( [0] => Array ( [name] => Banana [quantity] => 124 ) [1] => Array ( [name] => Cherry [quantity] => 24 ) [2] => Arra

假设我在PHP中有这个数组:

Array
(
    [0] => Array
        (
            [name] => Banana
            [quantity] => 124
        )
    [1] => Array
        (
            [name] => Cherry
            [quantity] => 24
        )
    [2] => Array
        (
            [name] => Apple
            [quantity] => 224
        )

)
如何使用键
数量
对数字求和


谢谢。

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

这对我们帮助很大

您可以使用:

$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+):


另一个选项是使用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"];
});

这个问题涉及:可能的重复
/*
    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;
}
$arr= [['name' => "Banana", 'quantity' => 124], ['name' => "Cherry", 'quantity' => 24], ['name' => "Apple", 'quantity' => 224]];

echo array_reduce($arr, function($sum, $elem) {
    return $sum += $elem["quantity"];
});