array_walk

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

array_walk -- Pou╛φt u╛ivatelskou funkci na v╣echny prvky pole

Popis

int array_walk ( array arr, string func, mixed userdata)

Aplikuje funkci func na v╣echny prvky pole arr. Funkci func se jako prvnφ argument p°edß hodnota a jako druh² klφΦ. Pokud je p°φtomen argument userdata, bude u╛ivatelskΘ funkci p°edßn jako t°etφ argument.

Pokud func vy╛aduje vφce ne╛ dva nebo t°i argumenty (v zßvislosti na userdata), pro ka╛dΘ volßnφ func z array_walk() se vygeneruje varovßnφ. Tato varovßnφ se dajφ potlaΦit p°idßnφm znaku '@' p°ed volßnφ array_walk() nebo pomocφ error_reporting().

Poznßmka: Pokud func pot°ebuje pracovat p°φmo s dan²m polem, prvnφ argument func se musφ p°edßvat odkazem. V╣echny zm∞ny t∞chto hodnot se pak promφtnou p°φmo v arr.

Poznßmka: Druh² a t°etφ argument func byly p°idßny v PHP 4.0.

V PHP 4 je t°eba volat podle pot°eby reset(), proto╛e array_walk() sama vstupnφ pole neresetuje.

P°φklad 1. Ukßzka array_walk()

$fruits = array ("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");

function test_alter (&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print ($item2, $key) {
    echo "$key. $item2<br>\n";
}

array_walk ($fruits, 'test_print');
reset ($fruits);
array_walk ($fruits, 'test_alter', 'fruit');
reset ($fruits);
array_walk ($fruits, 'test_print');

Viz takΘ: each() a list().