(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
funzione
deve lavorare con i reali valori dell'array, specificare che il primo parametro difunzione
deve essere passato come riferimento. A qesto punto ogni modifica a questi elementi verrà effettuata sull'array stesso.
Nota:
Il passaggio della chiave e di
datiutente
afunc
è 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()