array_walk

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

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.

Notatka: Zamiast nazwy funkcji może zostać przekazana tablica zawierająca referencję do obiektu i nazwę metody

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.

Modyfikacja tablicy z wnętrza funk może powodować nieprzewidziane błędy.

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.

Użytkownicy nie mogą zmieniać samej tablicy z wnętrza funkcji zwrotnej, to jest dodawać/usuwać elementy, usuwać tablicę na której jest wywoływana funkcja array_walk(). Jeśli ta tablica zostanie zmieniona, funkcja może się zachowywać w sposób nieokreślony.

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";
}
echo "Przed ...:\n";
array_walk ($owoce, 'test_wyswietlanie');
reset ($owoce);
array_walk ($owoce, 'test_zmiana', 'owoc');
echo "... i po:\n";
reset ($owoce);
array_walk ($owoce, 'test_wyswietlanie');

Powyższy przykład wyświetli:
Przed ...:
d. cytryna
a. pomarańcza
b. banan
c. jabłko
... i po:
d. owoc: cytryna
a. owoc: pomarańcza
b. owoc: banan
c. owoc: jabłko

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

Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:41