array_walkAplica uma determinada função em cada elemento de um array
&reftitle.description;
truearray_walkarrayobjectarraycallablecallbackmixedarg&null;
Aplica uma função definida pelo usuário passada pelo argumento
callback em cada elemento do array.
array_walk não é afetado pelo ponteiro interno do
array. array_walk
percorrerá todo o array desconsiderando a posição do ponteiro.
&reftitle.parameters;
array
O array de entrada.
callback
Normalmente, callback recebe dois parâmetros.
O valor do parâmetro array é o primeiro e
a chave/índice é o segundo.
Se callback realmente precisar alterar os valores
do array, especifique que o primeiro parâmetro de
callback deve ser passado por
referência. Assim,
qualquer mudança feita nesses elementos serão feitas
no próprio array também.
Muitas funções internas (por exemplo strtolower)
lançarão uma exceção se forem passados mais argumentos
que o esperado e não forem utilizados diretamente na função
callback.
Apenas os valores de um array podem potencialmente
ser alterados; sua estrutura não pode ser alterada, por exemplo, o programador não pode
adicionar, remover ou reordenar elementos. Se a função não respeitar esta regra,
o comportamento desta função é indefinido e
imprevisível.
arg
Se o parâmetro opcional arg for fornecido,
será passado como o terceiro parâmetro para a função
callback.
&reftitle.returnvalues;
&return.true.always;
&reftitle.errors;
A partir do PHP 7.1.0, uma exceção ArgumentCountError será lançada se a função callback
requerer mais de 2 parâmetros (o valor e a chave do item de array),
ou se mais de 3 argumentos no caso de arg ser informado.
Anteriormente, nesses casos
um erro de nível E_WARNING seria gerado em cada vez que
array_walk chamasse a função callback.
&reftitle.changelog;
&Version;&Description;
&return.type.true;
8.0.0
Se callback espera que o segundo ou o terceiro parâmetro seja passado
por referência, essa função agora emite um E_WARNING.
&reftitle.examples;
Exemplo de array_walk
"limão", "a" => "laranja", "b" => "banana", "c" => "melancia");
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2\n";
}
echo "Antes ...:\n";
array_walk($frutas, 'test_print');
array_walk($frutas, 'test_alter', 'fruta');
echo "... e depois:\n";
array_walk($frutas, 'test_print');
?>
]]>
&example.outputs;
Exemplo de array_walk e funções anônimas
{$value}\n";
});
?>
]]>
&example.outputs;
a
1 => b
2 => c
]]>
&reftitle.seealso;
array_walk_recursiveiterator_applylisteachcall_user_func_arrayarray_map&foreach;