zoukankan      html  css  js  c++  java
  • array_reduce()使用

      这个函数的作用是,把数组中的值循环放到回调函数里处理,结果返回一个单一的值。(applies iteratively the callback function to the elements of the array, so as to reduce the array to a single value.)

    这个函数需要两个必须参数和一个可选参数。第一个参数是要操作的数组,第二个是回调函数,第三个是初始值(可选)。

    举个例子,比如

    function sum($carry, $item)
    {
        var_dump($carry);
        var_dump($item);
        echo '<br/>';
        $carry += $item;
        return $carry;
    }
    
    $a = array(
        'a' => 1,
        'b' => 2,
        'c' => 3,
        '53' => 4,
        );
    
    var_dump(array_reduce($a, "sum")  );

    这个的运行结果:

    NULL     int(1)
    int(1)    int(2)
    int(3)    int(3)
    int(6)    int(4)
    int(10)

    以上表示,回调函数的第一个参数,可以hold住每次循环后的回调执行结果,以供下次循环使用(第一次执行的时候,这个参数取的是array_reduce()的第三个参数:初始值,没有就是null)。第二个参数就是每次循环的数组的值。

    最后的结果就返回了single value,就是10~

    再来看一个w3c的例子。

    function joinstring($v1,$v2)
    {
        return $v1 . "-" . $v2;
    }
    
    $a=array("Dog","Cat","Horse");
    
    print_r(array_reduce($a,"joinstring"));

    这个的返回结果是:-Dog-Cat-Horse

    注意字符串前边有个中划线。如果你认真看了第一个例子的说明,这个就不难理解了。

    因为array_reduce()没有初始值传入,所以第一次循环时,$v1是null,所以第一次hold住的值就是"-Dog";这下明白了吧哈哈~

  • 相关阅读:
    汉语-词语:架构(计算机术语)
    汉语-词语:架构
    全世界云计算宕机和中断[2013年-2014年集锦]
    java异常处理Exception
    CodeForces 390E Inna and Large Sweet Matrix(树状数组改段求段)
    操作系统CPU调度知识点
    hp-ux 集群,内存 小记
    增强for循环、Map接口遍历、可变參数方法
    spring下载和安装
    Android设计模式(八)--模板方法模式
  • 原文地址:https://www.cnblogs.com/firstForEver/p/5092334.html
Copyright © 2011-2022 走看看