Aplica uma função definida pelo usuário nomeada pelo argumento func em cada elemento de arr. func terá como primeiro o argumento o valor do elemento e sua chave como segndo parâmetro. Se userdata for especificado, ele será usado como terceiro argumento da função do usuário. func deve ser uma função definida pelo usuário, e não uma função nativa do PHP. Dessa forma, você não pode usar array_walk() juntamente com str2lower(), primeiro deve ser definida uma função do usuário, e depois passá-la como argumento.
Se func necessita de mais de dois ou três argumentos, dependendo de userdata, um será mostrado a cada vez que array_walk() executar func. Esses avisos podem ser suprimidos adicionando o operador '@' a chamada da função array_walk(), ou usando error_reporting().
Nota: Se func precisar alterar realmente os valores do array, especifique que o primeiro parâmetro de func deve ser passado por referência. Então qualquer mudança feita nesses elementos serão feitas no próprio arra também. itself.
Nota: A passagem das chaves e do terceiro argumento para func foi adicionada no PHP 4.0.
No PHP 4 reset() precisa ser chamada necessariamente uma vez que array_walk() não reinicializa o array por padrão.