Esegue la funzione definita dall'utente identificata da funzione su ogni elemento di arr. A funzione verrà passato il valore dell'elemento come primo parametro e la chiave come secondo parametro. Se datiutente è specificato, verrà passato come terzo parametro alla funzione. funzione deve essere una funzione definita dall'utente, e non può essere una funzione nativa PHP. Quindi, non si può usare array_walk() direttamente con str2lower(), bensì occorre costruire una funzione utente con tale istruzione, e passarla come argomento.
Se funzione richiede più di due o tre argomenti, a seconda di datiutente, un warning verrà generato ogni qualvolta array_walk() chiami funzione. Questi warning possono essere soppressi apponendo il simbolo '@' 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 di funzione 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 a func è stato aggiunto nella versione 4.0.
In PHP 4 la funzione reset() deve essere chiamata obbligatoriamente, in quanto array_walk() non reinizializza automaticamente l'array.