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)
    }  
  • 相关阅读:
    使用Eclipse搭建Struts2框架
    老王学jsp之response
    老王学jsp之request对象
    老王学jsp之四种属性范围
    老王学jsp之包含指令
    老王学jsp之page指令
    老王学jsp之jdom解析
    老王学jsp之sax解析xml
    老王学jsp之dom解析xml
    python文本分类
  • 原文地址:https://www.cnblogs.com/lz0925/p/10734086.html
Copyright © 2011-2022 走看看