array_walk
array_walk
(PHP 4, PHP 5, PHP 7)
array_walk - 将用户提供的函数应用于数组的每个成员
描述
bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
将用户定义的callback
函数应用于array
数组的每个元素。
array_walk()
不受内部数组指针的影响array
。无论指针位置如何,array_walk()
都会遍历整个数组。
参数
array
输入数组。
callback
通常,callback
有两个参数。该array
参数的值是第一个,键/索引第二个。
注意
:如果callback
需要使用数组的实际值,请指定第一个参数callback
作为参考。然后,对这些元素所做的任何更改都将在原始数组中进行。
注意
:如果超过预期的参数数量并且不能直接用作参数,许多内部函数(例如strtolower())将会发出警告callback
。
只有这些值array
可能会被改变; 其结构不能改变,即程序员不能添加,取消设置或重新排序元素。如果回调不遵守这个要求,这个函数的行为是不确定的,并且是不可预测的。
userdata
如果提供了可选userdata
参数,它将作为第三个参数传递给callback
。
返回值
TRUE
成功或FALSE
失败时返回。
错误/异常
从PHP 7.1.0开始,如果callback
函数需要多于2个参数(数组成员的值和键),则会引发ArgumentCountError 。以前,如果callback
函数需要多于2个参数,则每次array_walk()
调用callback
时,都会生成E_WARNING级别的错误。
例子
Example #1 array
_
walk() example
<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2<br />\n";
}
echo "Before ...:\n";
array_walk($fruits, 'test_print'
array_walk($fruits, 'test_alter', 'fruit'
echo "... and after:\n";
array_walk($fruits, 'test_print'
?>
上面的例子将输出:
Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple