在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' => 'green orange', 'c2' => 'yello orange')); // 数组递归调用自定义函数 array_walk_recursive($arr, function ($v, $k) { echo $v . '<br>'; });
以上代码输出如下:
apple banana green orange yello orange
举例2,回调函数递归遍历数组元素,传递额外参数:
<?php // 定义数组 $arr = array('a' => 'apple', 'b' => 'banana', 'c' => array('c1' => 'green orange', 'c2' => 'yello orange')); // 数组递归调用自定义函数 array_walk_recursive($arr, function ($v, $k, $udata) { echo $udata . $v . '<br>'; }, 'I like ');
以上代码输出如下:
I like apple I like banana I like green orange I like yello orange