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 array_walk
"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.