zoukankan      html  css  js  c++  java
  • array_map、array_walk、array_reduce

    不同情境下替换foreach,且效果更佳

    array_map  遍历原数组,array_map()参数中有几个数组,自定义函数就接收几个参数,

    在每个值上进行自定义函数处理,具有返回值,需要一个新数组来接收经过自定义函数处理的新数组

      public function test($request)
        {
          $aa = array('aa', 'bb');
          $bb = array_map(function($item) {
            $item = $item . 'aa' ;
            return $item;
          }, $aa);
          var_dump($aa);
          echo'<br/>';
          var_dump($bb);
        }
    //结果
         array(2) { [0]=> string(2) "aa" [1]=> string(2) "bb" }
         array(2) { [0]=> string(4) "aaaa" [1]=> string(4) "bbaa" }

    上面这种是最佳选用array_map的情景,我们也可以把array_map当成foreach的普通遍历使用,比如我们可以不要返回值,在array_map的过程中直接改变某个值。

    array_walk遍历数组,  array_walk()更像是普通遍历,因为它返回一个bool值,我习惯用它来替换foreach,如何使用见代码

    //处理9999.99异常值
    function test()
    {
                $val = [12,10041,9999.99,9999.99,45,66,32,11,9999.99,20];
                $sum = 0;
                array_walk($val, function ($v,$k) use(&$val,&$sum){
                    if($v == 9999.99)
                    {
                        $val[$k] = '-';
                    }
                    $sum += $v;
                });
                var_dump($val);exit;
                //结果array(12,10041,"-","-",45,66,32,11,"-",20);
                var_dump($sum);exit;
                //float(40226.97)
    }  
  • 相关阅读:
    FreeMarker配置详解
    tab显示不同数据
    EL表达式可以直接放在url的“ ”里面
    js的搜索框
    js实现tab页面不同内容切换显示
    如何让html中的td文字只显示部分
    MobileNets: Open-Source Models for Efficient On-Device Vision
    LFW Face Database下载
    python遍历文件夹
    把cifar数据转换为图片
  • 原文地址:https://www.cnblogs.com/lz0925/p/10734086.html
Copyright © 2011-2022 走看看