Web 开发PHP实战PHP经验分享

[PHP]返回数组中某一列的和

2017-08-04  本文已影响197人  夜航星osmo
这是一张效果图

返回数组中某一列的和,其实说白了就是单列求和。

从上图可以看出,这是一个二维数组。

$arr = array(   

    array(1,2,3,4,5,6),

    array(6,5,4,3,2,1),

    array(1,2,3,4,5,6),

    array(6,5,4,3,2,1)

)

此时,我们要求最后一列(下标为5的值)的总和,我们将要用到一下方法:

/*

* 返回数组中某一列的和 (数组中的值为数字)

* @param $array  数据数组

* @param $columnName  列名

*/

function sumValueInArray($array,$columnName)

{

    $rtn = 0;

    if(!is_null($array) && count($array) > 0)

    {

        foreach ($array as $key => $value) {

            if(!is_null($value) && array_key_exists($columnName, $value))

            {

            $rtn = $rtn + $value[$columnName];

            }

        }

    }

    return $rtn;

}

    $res = sumValueInArray($arr,5);

输出结果与效果图一致

此方法可用来处理流水记录,如有更多方法,欢迎留言!

更新一下,除上述方法之外,利用数组函数array_reduce(),通过自定义闭包函数返回结果

function sumValuesInArray($array, $columnName)

{

    $sum = array_reduce($array, function($carry, $item) use($columnName){

        return $carry + $item[$columnName];

    });

    return $sum;

}

$res = sumValueInArray($arr,2);

echo $res;

输出结果亦为单列值的和。

这里通过使用闭包函数,减少了条件判断,foreach循环及参数的使用,较之前更为简便。推荐给大家。望能集思广益,写出更高效的代码!

上一篇下一篇

猜你喜欢

热点阅读