首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

array_walk

(PHP 4, PHP 5, PHP 7)

array_walk - 将用户提供的函数应用于数组的每个成员

描述

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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');
?>

上面的例子将输出:

代码语言:javascript
复制
Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

扫码关注腾讯云开发者

领取腾讯云代金券