美高梅官方网站3045-mgm6608美高梅app下载
[PHP]重回数组中某一列的和

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

作者:mgm6608美高梅app下载    来源:未知    发布时间:2020-02-03 01:28    浏览量:

图片 1这是一张效果图

最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了。以下是自己的解决json_encode的办法。有更好的方法请分享出来吧!

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

第一种:

$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)

)

这种简单的做一个代码转换,urlcode之后再返回所需数组

此时,我们要求最后一列的总和,我们将要用到一下方法:

我代码这样就足够了。

/*

*返回数组中某一列的和

*@param $array 数据数组

*@param $columnName 列名

*/

function sumValueInArray($array,$columnName)

{

$rtn = 0;

if(!is_null && count > 0)

{

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

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

{

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

}

}

}

return $rtn;

}

$res = sumValueInArray;

 代码如下

图片 2输出结果与效果图一致

    public static function encodeOperations ($array)

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

    {

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

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

function sumValuesInArray($array, $columnName)

{

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

return $carry + $item[$columnName];

});

return $sum;

}

$res = sumValueInArray;

echo $res;

            if (is_array($value)) {

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

                encodeOperations($array[$key]);

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

            } else {

                $array[$key] = urlencode(mb_convert_encoding($value,'UTF-8','GBK'));

            }

        }

        return $array;

    }

第二种:

这种是在网上看到的,然后就是有评论说会出现无限循环的问题,但是这显然很全面的,然后我测试之后也确实有,贴这里仅供参考

 代码如下

 

     /**************************************************************

       *

       *    使用特定function对数组中所有元素做处理

       *    @param  string  &$array     要处理的字符串

       *    @param  string  $tocode     编码后

       *    @param  string  $oldcode    编码前

       *    @param  string  $function   要执行的函数

       *    @return boolean $apply_to_keys_also     是否也应用到key上

       *    @return array   $array      是否也应用到key上

       *    @access public

       *

     *************************************************************/

    function encodeOperations (&$array, $function, $tocode=false,$oldcode=false,$apply_to_keys_also = false)

    {

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

            if (is_array($value)) {

                encodeOperations($array[$key], $function, $apply_to_keys_also);

下一篇:没有了
友情链接: 网站地图
Copyright © 2015-2019 http://www.zen-40.com. mgm美高梅有限公司 版权所有