array_walk
(PHP 4, PHP 5)
array_walk — Aplica uma determinada funcão em cada elemento de um array
Descrição
Aplica uma função definida pelo usuário nomeada pelo argumento
funcname em cada elemento de array.
array_walk() não é afetado pelo ponteiro interno de
array. array_walk()
percorrerá por todo array desconsiderando a posição do ponteiro.
Parâmetros
-
array -
O array de entrada.
-
funcname -
Normalmente,
funcnamerecebe dois parâmetros. O valor do parâmetroarraysendo o primeiro, e a chave/índice o segundo.Note:
Se
funcnameprecisar alterar realmente os valores do array, especifique que o primeiro parâmetro defuncnamedeve ser passado por referência. Então qualquer mudança feita nesses elementos serão feitas no próprio array também.Usuários não podem modificar o próprio
arrayna função callback e.g. Adicionar/deletar elementos, apagar elementos, etc. Se o array que array_walk() é aplicado é modificado, o comportamento desta função é indefinido, e imprevisível. -
userdata -
Se o parâmetro opcional
userdataé fornecido, será passado como o terceiro parâmetro para o callbackfuncname.
Valor Retornado
Retorna TRUE em caso de sucesso ou FALSE em caso de falha.
Erros
Se funcname necessita de mais argumentos do que o que
está sendo passado para ela, um erro do nível
E_WARNING será gerado a cada vez que
array_walk() executar
func. Esses avisos podem ser suprimidos
adicionando o operador @
à chamada da função array_walk(),
ou usando error_reporting().
Changelog
| Versão | Descrição |
|---|---|
| 4.0.0 |
Passagem da chave e userdata para
funcname foi adicionado.
|
Example #1 Exemplo da array_walk()
<?php
$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";
}
echo "Antes ...:\n";
array_walk($frutas, 'test_print');
array_walk($frutas, 'test_alter', 'fruta');
echo "... e depois:\n";
array_walk($frutas, 'test_print');
?>
O exemplo acima irá imprimir:
Antes ...: d. limao a. laranja b. banana c. melancia ... e depois: d. fruit: limao a. fruit: laranja b. fruit: banana c. fruit: melancia
Veja Também
- array_walk_recursive() - Aplica um função do usuário recursivamente para cada membro de um array
- create_function() - Cria uma função anônima (lambda-style)
- list() - Cria variáveis como se fossem arrays
- each() - Retorna o par chave/valor corrente de um array e avança o seu cursor
- call_user_func_array() - Chama uma dada função de usuário com um array de parâmetros
- array_map() - Aplica uma função em todos os elementos dos arrays dados
- informação sobre o tipo callback
- foreach