array_walk Esegue una funzione su ogni elemento dell'array Descrizione boolarray_walk array&array callbackfunzione mixeddatiutente &return.success; 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. Se funzione deve lavorare con i reali valori dell'array, specificare che il primo parametro di funzione deve essere passato come riferimento. A qesto punto ogni modifica a questi elementi verrà effettuata sull'array stesso. Il passaggio della chiave e di datiutente a func è 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. esempio di <function>array_walk</function> "limone", "a"=>"arancia", "b"=>"banana", "c"=>"mela"); function modifica(&$elemento1, $chiave, $prefisso) { $elemento1 = "$prefisso: $elemento1"; } function stampa($elemento2, $chiave) { echo "$chiave. $elemento2
\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à:
Vedere anche array_walk_recursive, create_function, list, foreach, each, call_user_func_array e array_map