php数组(十一) array_walk_recursive
array_walk_recursive — 对数组中的每个成员递归地应用用户函数
适用于多维数组的遍历
将用户自定义函数 callback 应用到 array 数组中的每个单元。本函数会递归到更深层的数组中去。
参数
array
- 输入的数组。
callback
- 典型情况下
callback接受两个参数。array参数的值作为第一个,键名作为第二个。
注意:
- 如果
callback需要直接作用于数组中的值,则给callback的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。
userdata
- 如果提供了可选参数
userdata,将被作为第三个参数传递给callback。
1、遍历数据的示例,使用匿名回调函数的方式有效,使用函数名的方式发现对于值是数组的key不会传到回调函数去
<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');
function test_print($item, $key)
{
echo "$key holds $item\n";
}
array_walk_recursive($fruits, 'test_print');
array_walk_recursive($fruits, function (&$v, $key){
$v = $v . "_11";
});
var_dump($fruits);
array_walk_recursive($fruits, function($v1, $key1){
echo "$key1 holds $v1\n";
}, 'haha');
?>
输出:
a holds apple
b holds banana
sour holds lemon
array(2) {
["sweet"]=>
array(2) {
["a"]=>
string(8) "apple_11"
["b"]=>
string(9) "banana_11"
}
["sour"]=>
string(8) "lemon_11"
}
a holds apple_11
b holds banana_11
sour holds lemon_11
posted on 2021-08-04 21:18 1450811640 阅读(258) 评论(0) 收藏 举报
浙公网安备 33010602011771号