Map Filter Reduce PHP: A programação funcional é um paradigma de programação que enfatiza o uso de funções como elementos de primeira classe. Em PHP, as funções map
, filter
e reduce
são ferramentas poderosas para manipular arrays de forma declarativa e concisa, adotando princípios da programação funcional.
Neste artigo, vamos explorar como essas funções podem simplificar suas tarefas de programação, tornando seu código mais legível e eficiente.
Função map
A função map
aplica uma função a cada elemento de um array e retorna um novo array com os resultados. É ideal para transformar todos os elementos de um array de acordo com uma determinada regra.
PHP
// Dobrando cada número em um array
$numeros = [1, 2, 3, 4, 5];
$dobros = array_map(function($numero) {
return $numero * 2;
}, $numeros);
print_r($dobros); // Saída: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Função filter
A função filter
filtra os elementos de um array com base em uma condição. Retorna um novo array contendo apenas os elementos que satisfazem a condição.
PHP
// Filtrando números pares
$numeros = [1, 2, 3, 4, 5];
$pares = array_filter($numeros, function($numero) {
return $numero % 2 === 0;
});
print_r($pares); // Saída: Array ( [1] => 2 [3] => 4 )
Função reduce
A função reduce
reduz um array a um único valor, aplicando uma função acumulativa a cada elemento. É útil para realizar cálculos como somas, produtos, etc.
PHP
// Somando todos os números de um array
$numeros = [1, 2, 3, 4, 5];
$soma = array_reduce($numeros, function($acumulador, $numero) {
return $acumulador + $numero;
});
echo $soma; // Saída: 15
Comparação entre as funções
Função | Descrição |
---|---|
map | Aplica uma função a cada elemento e retorna um novo array. |
filter | Filtra elementos com base em uma condição e retorna um novo array. |
reduce | Reduz um array a um único valor, aplicando uma função acumulativa. |
Exemplos práticos
- Aumentando o preço de produtos em 10%:
PHP
$produtos = [
['nome' => 'Camiseta', 'preco' => 20],
['nome' => 'Calça', 'preco' => 50],
];
$produtosComAumento = array_map(function($produto) {
$produto['preco'] *= 1.1;
return $produto;
}, $produtos);
- Filtrando usuários maiores de 18 anos:
PHP
$usuarios = [
['nome' => 'João', 'idade' => 25],
['nome' => 'Maria', 'idade' => 17],
];
$adultos = array_filter($usuarios, function($usuario) {
return $usuario['idade'] >= 18;
});
- Calculando a média de notas:
PHP
$notas = [8, 7, 9, 10];
$media = array_reduce($notas, function($soma, $nota) {
return $soma + $nota;
}, 0) / count($notas);
Conclusão
Map Filter Reduce PHP: As funções map
, filter
e reduce
proporcionam uma forma elegante e concisa de manipular arrays em PHP. Ao adotar uma abordagem funcional, você pode escrever código mais limpo, legível e eficiente.
Toda jornada tem um início, e o início para se tornar um desenvolvedor back-end é dominar as seguintes tecnologias, que você encontra aqui mesmo:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados: