PHP数组遍历操作之array_map()函数

一、定义

array_map() 函数返回经过用户自定义函数循环遍历作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

二、语法

array_map(function,array1,array2,array3...);

三、参数

参数 => 描述/说明
function => 必需。用户自定义函数的名称/函数,或者是 null。
array1 => 必需。规定数组。
array2 => 可选。规定数组。
array3 => 可选。规定数组。

四、代码示例

  • 例1:
  • <?php
    <?php
    function myfunction($v){
        return($v*$v);
    }
    
    $a=array(1,2,3,4,5);
    print_r(array_map("myfunction",$a));
    ?>
    

    输出结果:

    Array
    (
    [0] => 1
    [1] => 4
    [2] => 9
    [3] => 16
    [4] => 25
    )
    

  • 例2:
  • 使用两个数组:

    <?php
    function myfunction($v1,$v2){
        if ($v1===$v2){
            return "same";
        }else
            return "different";
        }
    }
    
    $a1=array("Horse","Dog","Cat");
    $a2=array("Cow","Dog","Rat");
    print_r(array_map("myfunction",$a1,$a2));
    ?>
    

    输出结果:

    Array
    (
    [0] => different
    [1] => same
    [2] => different
    )
    
  • 例3:
  • 当自定义函数名设置为 null 时的情况:

    <?php
    $a1=array("Dog","Cat");
    $a2=array("Puppy","Kitten");
    print_r(array_map(null,$a1,$a2));
    ?>
    

    输出结果:

    Array
    (
        [0] => Array
            (
                [0] => Dog
                [1] => Puppy
            )
    
        [1] => Array
            (
                [0] => Cat
                [1] => Kitten
            )
    )
    

    那么在例如ThinkPHP框架的类中,需要用到 $this->myfunction() 这种方式下应该怎么使用 array_map() 函数呢
    代码示例:

    array_map(array($this,'myfunction'), $arr);
    //上面的$this也可以用__CLASS__类的魔术常量代替
    

    风影OvO

    风影OvO, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权 | 转载请注明原文链接

    留下你的评论

    *评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

    相关推荐