在多维数组列的求和没有循环 [英] Sum of columns in multidimensional array without loops

查看:116
本文介绍了在多维数组列的求和没有循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经习惯了在分析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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆