array_walk

(PHP 3>= 3.0.3, PHP 4 )

array_walk --  Aplica uma determinada funcão em cada elemento de um array

Descrição

int array_walk ( array arr, string func [, mixed userdata])

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.

Exemplo 1. Exemplo de array_walk()

$frutas = array ("d"=>"limao", "a"=>"laranja", "b"=>"banana", "c"=>"melancia");

function test_alter (&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print ($item2, $key) {
    echo "$key. $item2<br>\n";
}

array_walk ($frutas, 'test_print');
reset ($frutas);
array_walk ($frutas, 'test_alter', 'fruta');
reset ($frutas);
array_walk ($frutas, 'test_print');

Veja também each() e list().