array_walk

(PHP 3 >= 3.0.3, 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().

Bemærk: 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.

Bemærk: 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.

Eksempel 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.