Map Filter Reduce PHP

Capa Curso PHP
Tempo de leitura: 4 minutos

Map Filter Reduce PHP: A Programação Funcional oferece uma abordagem poderosa e declarativa para manipular dados, tratando a transformação de dados como a aplicação de funções. No PHP, as funções nativas array_map, array_filter e array_reduce são as ferramentas primárias para aplicar esses conceitos, simplificando tarefas complexas em arrays.

O uso dessas funções resulta em um código mais legível, conciso e fácil de testar.

1. 🗺️ Função array_map: Transformando Elementos

A função array_map aplica uma função de callback a cada elemento de um array de entrada e retorna um novo array com os resultados transformados. O array original permanece inalterado.

Sintaxe

PHP

array_map(callable $callback, array $array)

Exemplo: Dobrando Valores

Ideal para transformar todos os elementos de um array seguindo uma regra específica (ex: conversão de moeda, alteração de strings).

PHP

<?php
$numeros = [1, 2, 3, 4, 5];

$dobros = array_map(function($numero) {
    // A função de callback deve retornar o valor transformado
    return $numero * 2;
}, $numeros);

print_r($dobros); 
// Saída: Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
?>

2. 🛡️ Função array_filter: Selecionando Elementos

A função array_filter itera sobre um array e retorna um novo array contendo apenas os elementos que satisfazem uma determinada condição.

Sintaxe

PHP

array_filter(array $array, callable $callback)

Exemplo: Filtrando Números Pares

A função de callback deve retornar true para manter o elemento, ou false para descartá-lo.

PHP

<?php
$numeros = [1, 2, 3, 4, 5];

$pares = array_filter($numeros, function($numero) {
    // Retorna TRUE para manter o número, se for par
    return $numero % 2 === 0;
});

print_r($pares); 
// Saída: Array ( [1] => 2 [3] => 4 ) - Note que as chaves originais são preservadas
?>

Dica: O array_filter é frequentemente usado para remover valores “false” (como null, 0, false ou strings vazias) de um array, bastando omitir o callback: array_filter($array);.

3. 🎯 Função array_reduce: Reduzindo a um Valor Único

A função array_reduce aplica uma função de callback acumulativa a cada valor do array, eventualmente reduzindo-o a um único valor.

Sintaxe

PHP

array_reduce(array $array, callable $callback, mixed $initial = null)

O parâmetro $initial (valor inicial) é crucial, pois define o valor inicial do acumulador (ex: 0 para soma, 1 para produto).

Exemplo: Somando Valores

A função de callback recebe dois argumentos: o acumulador (resultado parcial) e o valor atual do array.

PHP

<?php
$numeros = [1, 2, 3, 4, 5];

$soma = array_reduce($numeros, function($acumulador, $numero) {
    // A função deve retornar o novo valor do acumulador
    return $acumulador + $numero;
}, 0); // O '0' é o valor inicial do acumulador

echo $soma; // Saída: 15
?>

4. 🧪 Exemplos Práticos Combinados

Essas funções são poderosas quando aplicadas a arrays associativos complexos.

A. Aumentando Preços (Map)

PHP

<?php
$produtos = [
    ['nome' => 'Camiseta', 'preco' => 20],
    ['nome' => 'Calça', 'preco' => 50],
];

$produtosComAumento = array_map(function($produto) {
    $produto['preco'] *= 1.1; // Aumenta 10%
    return $produto;
}, $produtos);

// $produtosComAumento agora contém os novos preços.
?>

B. Filtrando por Condição (Filter)

PHP

<?php
$usuarios = [
    ['nome' => 'João', 'idade' => 25],
    ['nome' => 'Maria', 'idade' => 17],
];

$adultos = array_filter($usuarios, function($usuario) {
    return $usuario['idade'] >= 18;
});

// $adultos contém apenas o array do 'João'.
?>

C. Calculando Média (Reduce e Count)

PHP

<?php
$notas = [8, 7, 9, 10];

// 1. Usa array_reduce para somar todas as notas, começando do 0
$somaTotal = array_reduce($notas, function($soma, $nota) {
    return $soma + $nota;
}, 0);

// 2. Calcula a média (Soma / Contagem)
$media = $somaTotal / count($notas); 

echo "Média: " . $media; // Saída: Média: 8.5
?>

✅ Conclusão Map Filter Reduce PHP

Map Filter Reduce PHP: As funções array_map, array_filter e array_reduce são fundamentais para adotar o estilo de Programação Funcional em PHP. Elas permitem que a manipulação de arrays seja feita de maneira declarativa (“o que fazer”, em vez de “como fazer”), resultando em código mais limpo, menos propenso a erros de iteração manual (como em loops for tradicionais) e mais fácil de entender em projetos colaborativos.

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:

SQL
SQL
Capa Curso PHP
PHP
Laravel
Laravel

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:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime

Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.