array_walk

(PHP 3>= 3.0.3, PHP 4 >= 4.0.0)

array_walk --  Zastosuj funkcję użytkownika do każdego elementu tablicy

Opis

int array_walk ( array tbl, string funk [, mixed dane])

Wykonuje zdefuniowaną przez użytkownika funkcję o nazwie funk na każdym elemencie tablicy tbl. Wartość elementu będzie przekazana do funk jako pierwszy parametr, a klucz jako drugi. Jeśli podany zostanie parametr dane, to będzie on przekazany do funkcji jako trzeci parametr. funk musi być funkcją zdefiniowaną przez użytkownika, a nie natywną funkcją PHP. W związku z tym nie możesz bezpośrednio użyć array_walk() z str2lower(). Musisz najpierw napisać funkcję zawierającą str2lower() i przekazać tą funkcję jako parametr.

Jeśli funk wymaga więcej niż dwóch lub trzech parametrów, zależnie od parametru dane, wygenerowane będzie ostrzeżenie za każdym razem, kiedy array_walk() będzie wywoływała funk. Ostrzeżenia te mogą być ukryte przez dodanie znaku '@' przed wywołaniem array_walk() lub używając error_reporting().

Notatka: Jeśli funk ma zmieniać wartości tablicy, określ pierwszy parametr funk jako referencję. W tym przypadku wszystkie zmiany dokonane przez tą funkcję będą dokonywane bezpośrednio na tablicy.

Notatka: Przekazywanie klucza i danych użytkownika do funk zostało dodane w PHP 4.0

W PHP 4 konieczne jest wywołanie reset() ponieważ array_walk() nie resetuje tablicy domyślnie.

Przykład 1. Przykład użycia array_walk()

$owoce = array ("d"=>"cytryna", "a"=>"pomarańcza", "b"=>"banan", "c"=>"jabłko");

function test_zmiana (&$element1, $klucz, $prefiks) {
    $element1 = "$prefiks: $element1";
}

function test_wyswietlanie ($element2, $klucz) {
    echo "$klucz. $element2<br>\n";
}

array_walk ($owoce, 'test_wyswietlanie');
reset ($owoce);
array_walk ($owoce, 'test_zmiana', 'owoc');
reset ($owoce);
array_walk ($owoce, 'test_wyswietlanie');

Patrz także each() i list().