Funções para Array
PHP Manual

array_walk

(PHP 4, PHP 5, PHP 7)

array_walkAplica uma determinada funcão em cada elemento de um array

Descrição

bool array_walk ( array &$arrary , string $funcname [, mixed $userdata ] )

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, funcname recebe dois parâmetros. O valor do parâmetro array sendo o primeiro, e a chave/índice o segundo.

Nota:

Se funcname precisar alterar realmente os valores do array, especifique que o primeiro parâmetro de funcname deve 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 array na 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 callback funcname.

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.

Exemplo #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


Funções para Array
PHP Manual