多维数组array_sum

2022-08-30 18:40:07

我已经看到了关于这个问题的各种帖子,所以我知道可能存在一些答案。然而,在阅读这些之后,我并不明智。

我有一个数组,如下所示。

[0] => Array
    (
        [id] => 95659865986
        [invoiceNumber] => 6374324
        [invoiceTitle] => Monthly
        [invoiceStatus] => Paid
        [accountId] => 6235218753
        [totalExVat] => 158.95
        [dateCreated] => 1 Apr 2012
        [vatAmount] => 20.00
    )

我想做的就是对这个数组的值进行数组求和。vatAmount

由于以下内容似乎没有做太多事情。

(array_sum($account_invoices['vatAmount'])

答案 1

如果你有PHP 5.5 +,你可以这样做,而无需循环或使用回调(因为函数调用相对昂贵)...只需使用:

$sum = array_sum(array_column($account_invoices, 'vatAmount'));

答案 2

我会使用array_map将数组减少到仅需要的数组。请记住,这仅适用于 PHP 5.3 及更高版本。

$total_vat = array_sum( array_map(
                 function($element){
                     return $element['vatAmount'];
                 }, 
             $account_invoices));