array_walk
Esegue una funzione su ogni elemento dell'array
Descrizioneboolarray_walkarray&arraycallbackfunzionemixeddatiutente
&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 array_walk
"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