PHP 中的 array_walk 函数用于对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。
array_walk(array,myfunction,userdata...);
参数
参数 描述 array 必需。规定数组。 myfunction 必需。用户自定义函数的名称。 userdata,… 可选。规定用户自定义函数的参数。您能够向此函数传递任意多参数。 返回值
如果成功则返回 TRUE,否则返回 FALSE。
说明
array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。
典型情况下 myfunction 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。
如果 myfunction 函数需要的参数比给出的多,则每次 array_walk() 调用 myfunction 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。
如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。将键名和 userdata 传递到 myfunction 中是 PHP 4.0 新增加的。
案例
array_walk遍历数组
使用 array_walk() 函数,遍历数组元素
<?php echo "嗨客网(www.haicoder.net)<br>"; function myfunction($value,$key) { echo "$key => $value <br>"; } $arr = array("name"=>"haicoder", "url"=>"www.haicoder.net", "age"=>109); array_walk($arr, "myfunction");
程序运行后,控制台输出如下:
我们使用了 array_walk 函数,遍历了数组的所有元素,并对每一个元素调用了 myfunction 函数。
array_walk遍历数组
使用 array_walk() 函数,遍历数组元素并更新数组元素
<?php echo "嗨客网(www.haicoder.net)<br>"; function myfunction(&$value,$key) { if ($key == "age"){ $value = 110; } } $arr = array("name"=>"haicoder", "url"=>"www.haicoder.net", "age"=>109); array_walk($arr, "myfunction"); print_r($arr); echo "<br>";
程序运行后,控制台输出如下:
我们使用了 array_walk 函数,遍历了数组的所有元素,并对每一个元素调用了 myfunction 函数,同时,我们将数组的第一个的参数设置为了引用,因此,我们可以在该函数里面修改数组元素的值。
PHP array_walk函数总结
PHP 中的 array_walk 函数用于对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。