PHP array_walk()-funktio

Esimerkki

Sovella käyttäjän määrittämää funktiota taulukon jokaiselle elementille:

<?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");
?>

运行实例

Määrittely ja käyttötapa

array_walk()-funktio soveltaa paluutoimintoa taulukon jokaiselle elementille. Funktiota kutsuttaessa taulukon avaimet ja arvot ovat parametreina.

注释:Voit muuttaa taulukon elementin arvoa määrittämällä ensimmäisen parametrin viittaukseksi: &$value (katso esimerkki 2).

Vinkki:Jos haluat käsitellä syvemmälle meneviä taulukoita (jossa on toinen taulukko), käytä array_walk_recursive() Funktio.

Syntaksi

array_walk(array,myfunction,userdata...)
Parametrit Kuvaus
array Välttämätön. Määrittää taulukon.
myfunction Välttämätön. Käyttäjän määrittämän funktion nimi.
userdata,... Valinnainen. Määrittää käyttäjän määrittämän funktion parametrit. Voit välittää tälle funktiolle minkä määrän parametreja tahansa.

Kuvaus

array_walk()-funktio soveltaa paluutoimintoa taulukon jokaiselle elementille. Jos onnistuu, palauttaa TRUE, muuten FALSE.

Tavallisissa tapauksissa myfunction ottaa kaksi parametria.array Parametin arvo toimii ensimmäisenä, avainnimenä toisena. Jos tarjotaan valinnaisia parametreja userdata Se toimitetaan kolmantena parametrina paluutoiminnolle.

如果 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);
?>

运行实例