Mr *_*ose 17 php arrays array-sum
我已经看到各种关于这个问题的帖子,所以我知道可能存在一些答案.但阅读这些之后,我并不聪明.
我有一个类似如下的数组.
[0] => Array
(
[id] => 95659865986
[invoiceNumber] => 6374324
[invoiceTitle] => Monthly
[invoiceStatus] => Paid
[accountId] => 6235218753
[totalExVat] => 158.95
[dateCreated] => 1 Apr 2012
[vatAmount] => 20.00
)
Run Code Online (Sandbox Code Playgroud)
我想做的就是vatAmount对这个数组的值进行数组求和.
由于以下似乎没有做太多.
(array_sum($account_invoices['vatAmount'])
Run Code Online (Sandbox Code Playgroud)
Bla*_*nzo 55
如果您有PHP 5.5+,您可以在不循环或使用回调的情况下执行此操作(因为函数调用相对昂贵)...只需使用:
$sum = array_sum(array_column($account_invoices, 'vatAmount'));
Run Code Online (Sandbox Code Playgroud)
Khi*_*ior 26
我会使用array_map将数组减少到只需要的数量.请记住,这只适用于PHP 5.3以上版本.
$total_vat = array_sum( array_map(
function($element){
return $element['vatAmount'];
},
$account_invoices));
Run Code Online (Sandbox Code Playgroud)
mat*_*ias 17
只是一种方法:
$sum = 0;
foreach($account_invoices as $num => $values) {
$sum += $values[ 'vatAmount' ];
}
Run Code Online (Sandbox Code Playgroud)
您可以array_map先使用它来收集vatAmout值.
$sum = array_sum(array_map(function($var) {
return $var['vatAmout'];
}, $account_invoices));
Run Code Online (Sandbox Code Playgroud)