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 阅读(238) 评论(0) 编辑 收藏 举报