php array_walk 对数组中的每个元素应用用户自定义函数详解
phparray_walk对数组中的每个元素应用用户自定义函数
array_walk使用用户自定义函数对数组中的每个元素做回调处理
基本语法
boolarray_walk(array&$array,callable$funcname[,mixed$userdata=NULL])
将用户自定义函数funcname应用到array数组中的每个单元。
array_walk()不会受到array内部数组指针的影响。array_walk()会遍历整个数组而不管指针的位置。
参数介绍:
参数
描述
array
必需。输入的数组。
funname
必需。用户自定义函数的名称。典型情况下funcname接受两个参数。array参数的值作为第一个,键名作为第二个。如果funcname需要直接作用于数组中的值,则给funcname的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。
userdata
可选。规定用户自定义函数的参数。如果提供了可选参数userdata,将被作为第三个参数传递给callbackfuncname。
说明:
1.array_walk()函数对数组中的每个元素应用回调函数。如果成功则返回TRUE,否则返回FALSE。
2.典型情况下funname接受两个参数。array参数的值作为第一个,键名作为第二个。如果提供了可选参数userdata,将被作为第三个参数传递给回调函数。
3.如果funname函数需要的参数比给出的多,则每次array_walk()调用funname时都会产生一个E_WARNING级的错误。这些警告可以通过在array_walk()调用前加上PHP的错误操作符@来抑制,或者用error_reporting()。
4.如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用。
返回值
成功时返回TRUE,或者在失败时返回FALSE。
实例:
<?php $fruits=array( "d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple" ); functiontest_alter(&$item1,$key,$prefix){ $item1="$prefix:$item1"; } functiontest_print($item2,$key){ echo"$key.$item2<br/>"; } echo"Before...:<br/>"; array_walk($fruits,'test_print'); array_walk($fruits,'test_alter','fruit'); echo"...andafter:<br/>"; array_walk($fruits,'test_print'); ?>
运行结果:
Before...:
d.lemon
a.orange
b.banana
c.apple
...andafter:
d.fruit:lemon
a.fruit:orange
b.fruit:banana
c.fruit:apple
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!