Podręcznik PHP
Poprzedni |  | Następny

# array_walk

(PHP 3>= 3.0.3, PHP 4 )

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().

Poprzedni | Spis treści | Następny
array_values | Początek rozdziału | array