PHP

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