Você está aqui: PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Usando a função array_walk() para aplicar uma função a cada um dos elementos de um arrayQuantidade de visualizações: 8094 vezes |
Em algumas situações nós gostaríamos de acessar os elementos de um array individualmente e processá-los em uma função personalizada. Isso pode ser feito com o auxílio da função array_walk(). Esta função recebe um array e uma função que será aplicada a cada um dos elementos do array. Veja um trecho de código no qual testamos se o valor do elemento atual é par. Se for nós adicionamos 2 ao seu valor:<? // função personalizada que será aplicada a cada um dos // elementos do array fornecido como argumento function adicionar_valor(&$valor, $chave){ if($valor % 2 == 0){ $valor += 2; } } // vamos declarar e inicializar um array de inteiros $valores = array(9, 2, 6, 11, 7, 6); // vamos listar os valores dos elementos no array echo "Elementos no array:<br>"; for($i = 0; $i < count($valores); $i++){ echo $valores[$i] . " - "; Quando executarmos este código teremos o seguinte resultado: Elementos no array: 9 - 2 - 6 - 11 - 7 - 6 - Depois de array_walk(): Note que a função personalizada que fornecemos à array_walk() automaticamente possui dois parâmetros, a saber: &$valor e $chave. $valor é fornecido como referência, o que significa que qualquer alteração no valor do elemento atual será refletido no array original. Há ainda a possibilidade de um terceiro parâmetro, que são dados adicionais que podemos passar para a função de callback. Veja um exemplo no qual atribuimos o valor 0 a cada um dos elementos cujo valor é menor que o valor passado como argumento para a função personalizada: <? // função personalizada que será aplicada a cada um dos // elementos do array fornecido como argumento function zerar_menores(&$valor, $chave, $numero){ if($valor < $numero){ $valor = 0; } } // vamos declarar e inicializar um array de inteiros $valores = array(9, 2, 6, 11, 7, 6); // vamos listar os valores dos elementos no array echo "Elementos no array:<br>"; for($i = 0; $i < count($valores); $i++){ echo $valores[$i] . " - "; } // vamos aplicar uma função personalizada a cada um |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |