在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 . '
';
});
以上代码输出如下: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 . '
';
}, 'I like ');
以上代码输出如下:I like apple
I like banana
I like green orange
I like yello orange