在多维数组列的求和没有循环 [英] Sum of columns in multidimensional array without loops
本文介绍了在多维数组列的求和没有循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经习惯了在分析R数据,并有一个很难在PHP搞清楚数组。
I'm used to analysing data in R and have a hard time figuring out array in PHP.
由于以下阵列( $ DAT
),什么是让所有女性总数的最简单的方法?
Given the following array ($dat
), what is the easiest way to get the total number of all females?
print("<pre>".print_r($dat,true)."</pre>");
Array
(
[0] => Array
(
[0] => female
[1] => blue
[2] => 62
)
[1] => Array
(
[0] => female
[1] => red
[2] => 22
)
[2] => Array
(
[0] => male
[1] => blue
[2] => 21
)
)
我这样做:
foreach($dat as $row) {
if($row[0]=='female') {
$females = $females + $row[2];
}
}
但是,必须有一种方法没有循环!
But there must be a way without loops!
是不是有类似 SUM($ DAT [] [2])
?
推荐答案
可以 array_reduce
阵列的款项这种方式:
You can array_reduce
your array to a sum that way :
$array[0] = array('female', 2);
$array[1] = array('female', 5);
$array[2] = array('male', 2);
$sum = array_reduce($array, function ($value, $item) {
if ($item[0] == 'female') $value += $item[1];
return $value;
}, 0);
var_dump($sum);
输出:
7
这篇关于在多维数组列的求和没有循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文