(PHP 4, PHP 5)
array_walk — Esegue una funzione su ogni elemento dell'array
Restituisce TRUE in caso di successo, FALSE in caso di fallimento.
Esegue la funzione definita dall'utente identificata da funzione
su ogni elemento di array. Normalmente
funzione accetta due parametri.
Il valore del parametro array viene passato per primo,
la chiave/indice per secondo. Se il parametro datiutente
è specificato, verrà passato come terzo parametro alla
funzione callback.
Se funzione richiede più parametri di
quanti gliene vengono passati, un errore di livello
E_WARNING verrà generato ogni volta che array_walk()
la chiama. Questi avvertimenti possono essere soppressi
apponendo l'operatore d'errore
@ alla
chiamata di array_walk(), oppure usando
error_reporting().
Nota:
Se
funzionedeve lavorare con i reali valori dell'array, specificare che il primo parametro difunzionedeve essere passato come riferimento. A qesto punto ogni modifica a questi elementi verrà effettuata sull'array stesso.
Nota:
Il passaggio della chiave e di
datiutenteafuncè stato aggiunto nella versione 4.0.
array_walk() non è influenzato dal puntatore
interno dell'array array.
array_walk() percorrerà l'intero array
indipendentemente dalla posizione del puntatore. Per reinizializzare il puntatore, utilizzare
reset(). In PHP 3,
array_walk() reinizializza il puntatore.
Gli utenti non possono modificare l'array attraverso la funzione di callback, ad esempio aggiungere/togliere un elemento, o cancellare l'array su cui array_walk() è applicata. Se l'array viene cambiato, il comportamento di questa funzione non è definito ed è imprevedibile.
Example #1 esempio di array_walk()
<?php
$frutta = array("d"=>"limone", "a"=>"arancia", "b"=>"banana", "c"=>"mela");
function modifica(&$elemento1, $chiave, $prefisso)
{
$elemento1 = "$prefisso: $elemento1";
}
function stampa($elemento2, $chiave)
{
echo "$chiave. $elemento2<br />\n";
}
echo "Prima ...:\n";
array_walk($frutta, 'stampa');
array_walk($frutta, 'modifica', 'frutto');
echo "... e dopo:\n";
array_walk($frutta, 'stampa');
?>
Il risultato del programma sarà:
Prima ...: d. limone a. arancia b. banana c. mela ... e dopo: d. frutto: limone a. frutto: arancia b. frutto: banana c. frutto: mela
Vedere anche array_walk_recursive(), create_function(), list(), foreach, each(), call_user_func_array() e array_map()