Forum und email

array_walk

(PHP 4, PHP 5)

array_walk — Aplikovať užívateľskú funkciu na každý člen poľa

Popis

bool array_walk ( array $pole , callback $funkcia [, mixed $userdata ] )

Vracia TRUE pri úspechu alebe FALSE pri chybe.

Aplikuje užívateľom definovanú funkciu funkcia na každý prvok poľa pole . Typicky má funkcia dva parametre. Prvým je hodnota parametra poľa pole a druhým je kľúč/index. Ak je dostupný i voliteľný parameter userdata , odovzdá sa ako tretí parameter k spätnému volaniu funkcie funkcia .

Ak funkcia funkcia vyžaduje viac parametrov než jej bolo dané, vždy, keď array_walk() volá funkciu funkcia , vygeneruje sa chyba úrovne E_WARNING. Tieto výstrahy sa dajú potačiť pridaním PHP chybového operátora @ pred volanie array_walk() alebo pomocou error_reporting().

Note: Ak funkcia potrebuje pracovať s aktuálnymi hodnotami poľa, nastavte prvý parameter funkcia ako odkaz. Potom všetky zmeny, ktoré sa previedli týmto prvkom, sa vykonajú v pôvodnom poli.

Note: Predávanie kľúča a userdata funkcii funkcia bolo pridané v 4.0.0

array_walk() nie je ovplyvnená vnútorným ukazovateľom poľa pole . array_walk() prejde cez celé pole bez ohľadu na pozíciu ukazovateľa. Na resetovanie ukazovateľa použite reset(). V PHP 3 ukazovateľa resetuje array_walk().

Užívatelia nemusia zmeniť samotné pole zo spätného volania, t.j. Pridať/odstrániť prvky, vymazať prvky atď. Ak sa pole, na ktoré je array_walk() aplikovaná, zmení, správanie tejto funkcie nie je definované a nie je predvídateľné.

Example#1 array_walk() príklad

<?php
$ovocie 
= array("d"=>"citron""a"=>"pomaranc""b"=>"banan""c"=>"jablko");

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

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

echo 
"Pred tym...:\n";
array_walk($ovocie'test_print');

array_walk($ovocie'test_alter''ovocie');
echo 
"... a potom:\n";

array_walk($ovocie'test_print');
?>

Výpisom horeuvedného programu bude:

Pred tym...:
d. citron
a. pomaranc
b. banan
c. jablko
... a potom:
d. ovocie: citron
a. ovocie: pomaranc
b. ovocie: banan
c. ovocie: jablko

Tiež pozri array_walk_recursive(), create_function(), list(), foreach, each() call_user_func_array() a array_map().