zoukankan      html  css  js  c++  java
  • PHP array_walk() 函数,对数组中应用自定义函数

    PHP array_walk() 函数

    定义和用法
    array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
    注释:你可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值(参见实例 2)。
    提示:如需操作更深的数组(一个数组中包含另一个数组),请使用 array_walk_recursive() 函数。
    语法
    array_walk(array,myfunction,userdata...)
    参数 描述
    array 必需。规定数组。
    myfunction 必需。用户自定义函数的名称。
    userdata,... 可选。规定用户自定义函数的参数。你能够向此函数传递任意多参数。
    说明
    array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。
    典型情况下 myfunction 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。
    如果 myfunction 函数需要的参数比给出的多,则每次 array_walk() 调用 myfunction 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。
    注释:如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。(参见例子 3)
    注释:将键名和 userdata 传递到 myfunction 中是 PHP 4.0 新增加的。
    技术细节
    返回值: 如果成功则返回 TRUE,否则返回 FALSE。
    PHP 版本: 4+


     用例1,设置一个参数:

    <?php
    function myfunction($value,$key,$p)
    {
    echo "$key $p $value<br>";
    }
    $a=array("a"=>"red","b"=>"green","c"=>"blue");
    array_walk($a,"myfunction","has the value");
    ?>
    运行结果
    a has the value red
    b has the value green
    c has the value blue

    用例2  更改一个数组元素的值(请注意 &$value):
    <?php
    function myfunction(&$value,$key)
    {
    $value="yellow";
    }
    $a=array("a"=>"red","b"=>"green","c"=>"blue");
    array_walk($a,"myfunction");
    print_r($a);
    ?>
    运行结果

    Array ( [a] => yellow [b] => yellow [c] => yellow )


    PHP array_walk_recursive() 函数

    定义和用法
    array_walk_recursive() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
    该函数与 array_walk() 函数的不同在于可以操作更深的数组(一个数组中包含另一个数组)。

    语法
    array_walk_recursive(array,myfunction,parameter...)
    参数 描述
    array 必需。规定数组。
    myfunction 必需。用户自定义函数的名称。
    userdata,... 可选。规定用户自定义函数的参数。你能够向此函数传递任意多参数。

    说明
    与 array_walk() 函数 类似,array_walk_recursive() 函数对数组中的每个元素应用回调函数。不一样的是,如果原数组中的元素也是数组,就会递归地调用回调函数,也就是说,会递归到更深层的数组中去。
    典型情况下,myfunction 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。
    如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用,这样对这些单元的任何改变也将会改变原始数组本身。
    技术细节
    返回值: 如果成功则返回 TRUE,否则返回 FALSE。
    PHP 版本: 5+

    用例1,对数组中的每个元素应用用户自定义函数:
    <?php
    function myfunction($value,$key)
    {
    echo "键 $key 的值是 $value 。<br>";
    }
    $a1=array("a"=>"red","b"=>"green");
    $a2=array($a1,"1"=>"blue","2"=>"yellow");
    array_walk_recursive($a2,"myfunction");
    ?>

    运行结果
    键 a 的值是 red 。
    键 b 的值是 green 。
    键 1 的值是 blue 。
    键 2 的值是 yellow 。

  • 相关阅读:
    构造器
    方法
    Arrays常用的类
    栈内存和堆内存
    方法的重载
    数组遍历
    Scanner类
    连接符和三元运算符
    逻辑运算和位运算
    CSAPP笔记(第二章 信息的表示和处理)-02
  • 原文地址:https://www.cnblogs.com/haoyuekey/p/12794045.html
Copyright © 2011-2022 走看看