PHP array_walk() funktion

Exempel

Använd en användardefinierad funktion till varje element i arrayen:

<?php
function myfunction($value,$key)
{
echo "The key $key has the value $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
?>

运行实例

Definition och användning

array_walk() funktions använder en användardefinierad funktion till varje element i arrayen. I funktionen är arrayens nyckelnamn och nyckelvärde parametrar.

注释:Du kan ändra värdet på arrayens element genom att specificera den första parametern i den användarens egna funktion som en referens: &$value (se exempel 2).

Tips:Om du behöver hantera djupare arrayer (en array innehåller en annan array), använd array_walk_recursive() Funktion.

Syntaks

array_walk(array,myfunction,userdata...)
Parametrar Beskrivning
array Obligatoriskt. Bestämmer arrayen.
myfunction Obligatoriskt. Namnet på användarens egna funktion.
userdata,... Valfritt. Bestämmer användarens egna funktionens parametrar. Du kan skicka så många parametrar till denna funktion som du vill.

Förklaring

applierar array_walk()-funktionen till varje element i arrayen. Om det lyckas returneras TRUE, annars FALSE.

I typiska fall myfunction tar emot två parametrar.array Värdet för parametern som första, och namnet på nyckeln som andra. Om ett valfritt argument tillhandahålls userdata Det kommer att passeras som tredje parameter till callback-funktionen.

如果 myfunction 函数需要的参数比给出的多,则每次 array_walk() 调用 myfunction 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。

注释:如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。(参见例子 3)

注释:将键名和 userdata 传递到 myfunction 中是 PHP 4.0 新增加的。

技术细节

返回值: 如果成功则返回 TRUE,否则返回 FALSE。
PHP 版本: 4+

更多实例

例子 1

设置一个参数:

<?php
function myfunction($value,$key,$p)
{
echo "$key $p $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction","has the value");
?>

运行实例

例子 2

更改一个数组元素的值(请注意 &$value):

<?php
function myfunction(&$value,$key)
{
$value="yellow";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction");
print_r($a);
?>

运行实例