Forum und email

array_walk

(PHP 4, PHP 5)

array_walk — Udfører en bruger funktion på alle elementer i et array

Beskrivelse

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )

Returnerer TRUE ved succes, FALSE ved fejl.

Udfører den bruger-definerede funktion, funcname til hver element i array arrayet. Typisk vil funcname tage to parameter. Parameteren array 's værdi er den første og nøglen den anden. Hvis den valgfri parameter userdata er sat, vil den blive smidt ind i callback funktionen funcname som tredje parameter.

Hvis funktionen funcname kræver flere parameter end der bliver givet til den, vil den fejl i E_WARNING niveau blive genereret hver gang array_walk() kalder funcname . Disse fejl kan blive gemt ved at bruge PHP error operator @ før array_walk() funktionen eller ved at bruge error_reporting().

Note: Hvis funcname skal arbejde med den rigtige værdi i arrayet, skal du specifere den første parameter af funcname som en reference. Så vil ændringerne ske direkte til de elementer.

Note: Tilføjning af nøglen og userdata til funcname blev muligt fra 4.0.0.

array_walk() tager ikke hensyn til den interne array pointer i array . array_walk() vil gå igennem hele arrayet, lige meget hvor array pointeren står. For at resette pointeren, brug reset(). I PHP 3 resatte, array_walk() pointeren.

Brugere bør ikke ændre arrayet fra callback funktionen. F.eks. tilføje/slette elementer, nulstille elementer osv. Hvis arrayet som array_walk() er tilknyttet til er ændret vil handlingerne af denne funktion være ubeskrevet og ikke til at vide.

Example#1 array_walk() eksempel

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

Ovenstående eksempel vil udskrive:

Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Se også array_walk_recursive(), create_function(), list(), foreach, each(), call_user_func_array(), array_map() og information omkring callback typen.