array_walk 用于遍历并处理数组每个元素,通过回调函数对键值对执行操作,可修改原数组值。语法为 array_walk(array &$array, callable $callback, mixed $userdata),$array 为引用传入的数组,$callback 为接收 $value、$key 和 $userdata 的回调函数,$userdata 为可选数据。回调中需使用 &$value 才能修改原数组。例如添加前缀:array_walk($fruits, function(&$value, $key) {$value = “fruit: ” . $value;}); 使 [“a”=>”apple”] 变为[“a”=>”fruit: apple”]。该函数返回 bool,不保证顺序,不生成新数组,适用于需原地修改的场景。

array_walk 函数用于对数组中的每个元素应用一个自定义函数。它允许你遍历数组,并对每一个 键值对 执行指定的操作,常用于数据处理或格式化。
基本语法
array_walk(array &$array, callable $callback, mixed $userdata = null): bool
参数说明:
- $array:要操作的数组,会以引用方式传入,但函数本身不修改数组结构(除非在回调中显式修改)。
- $callback:被调用的 回调函数,接收最多三个参数:当前元素的值、键名、以及可选的用户传入数据。
- $userdata:可选参数,会传递给回调函数的第三个参数。
回调函数的结构
回调函数通常定义为:
立即学习“PHP 免费学习笔记(深入)”;
function callback($value, $key, $userdata) {……}
其中 $value 是当前元素的值,$key 是当前元素的键,$userdata 是额外传入的数据。由于数组是引用传递,若要在回调中修改原数组的值,需使用引用方式传值。
使用示例
例如,给数组每个元素添加前缀:
$fruits = ["a" => "apple", "b" => "banana"];<br>array_walk($fruits, function($value, $key) {<br> echo "$key => $value<br>";<br>});
输出:
a => apple<br>b => banana
若要修改原数组值,可以这样写:
array_walk($fruits, function(&$value, $key) {<br> $value = "fruit: " . $value;<br>});
此时 $fruits 数组内容变为:
[“a” => “fruit: apple”, “b” => “fruit: banana”]
注意事项
- 该函数返回布尔值,成功为 true,失败为 false。
- 不能保证遍历顺序,如需按特定顺序处理,应先排序数组。
- 与 array_map 不同,array_walk 不生成新数组,而是直接操作原数组(需通过引用修改值)。
基本上就这些。这个函数适合需要逐项处理并可能修改原数组的场景。
以上就是