php数组(十一) array_walk_recursive

array_walk_recursive — 对数组中的每个成员递归地应用用户函数

 

适用于多维数组的遍历

 

array_walk_recursive(array &$arraycallable $callbackmixed $userdata = null): bool

将用户自定义函数 callback 应用到 array 数组中的每个单元。本函数会递归到更深层的数组中去。

 

参数

array

  • 输入的数组。

callback

  • 典型情况下 callback 接受两个参数。array 参数的值作为第一个,键名作为第二个。

注意: 

  • 如果 callback 需要直接作用于数组中的值,则给 callback 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。

userdata

  • 如果提供了可选参数 userdata,将被作为第三个参数传递给 callback

1、遍历数据的示例,使用匿名回调函数的方式有效,使用函数名的方式发现对于值是数组的key不会传到回调函数去

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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');
 
         
?>

 输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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   1450811640  阅读(249)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示