在PHP中,数组函数 array_walk_recursive() 使用回调函数递归遍历数组元素。
函数语法:array_walk_recursive(array&$array,callable$callback[,mixed$userdata=NULL]):bool
函数参数说明:参数描述
array必需。规定数组。
callback必需。一般情况下 callback 接受两个参数。array 参数的值作为第一个,键名作为第二个。
userdata可选。如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname。
array_walk_recursive() 函数使用用户自定义回调函数递归遍历数组元素。本函数会递归到更深层的数组中去。
注意:
可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值。
举例1,回调函数递归遍历数组元素:<?php
//定义数组
$arr=array('a'=>'apple','b'=>'banana','c'=>array('c1'=>'greenorange','c2'=>'yelloorange'));
//数组递归调用自定义函数
array_walk_recursive($arr,function($v,$k){
echo$v.'
';
});
以上代码输出如下:apple
banana
greenorange
yelloorange
举例2,回调函数递归遍历数组元素,传递额外参数:<?php
//定义数组
$arr=array('a'=>'apple','b'=>'banana','c'=>array('c1'=>'greenorange','c2'=>'yelloorange'));
//数组递归调用自定义函数
array_walk_recursive($arr,function($v,$k,$udata){
echo$udata.$v.'
';
},'Ilike');
以上代码输出如下:Ilikeapple
Ilikebanana
Ilikegreenorange
Ilikeyelloorange