array_walk Zastosuj funkcję użytkownika do każdego elementu tablicy Opis intarray_walk arraytbl stringfunk mixeddane 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. ¬e.func-callback; 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. 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. 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 użycia <function>array_walk</function> "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
\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:
Patrz także: each i list.