foreach vs array_map no PHP: Objetivos, Quando Usar e Exemplos

Bruno Oliveira
2 min readJun 7, 2024

No PHP, foreach e array_map são duas construções poderosas para manipulação de arrays. Ambas têm suas próprias finalidades e são adequadas para diferentes cenários de uso. Este artigo detalha os objetivos de cada uma, quando usá-las e fornece exemplos práticos para ilustrar suas utilizações.

Objetivos

foreach

O foreach é uma estrutura de controle que permite iterar sobre elementos de um array ou objeto. É geralmente utilizado quando se precisa realizar operações ou modificações em cada item individualmente dentro de um array. O foreach é simples e fácil de usar, sendo muito versátil para diversas tarefas de iteração.

array_map

A função array_map aplica uma função de callback a cada elemento de um ou mais arrays. Seu principal objetivo é transformar ou mapear cada elemento do array original para um novo array, retornando um array modificado com os resultados da aplicação da função de callback. É útil quando você deseja aplicar a mesma operação a todos os elementos de um array de forma funcional.

Quando Usar Cada Um

  • Use foreach quando:
  • Você precisa executar operações complexas ou múltiplas sobre os elementos do array.
  • Precisa modificar o array original diretamente.
  • A lógica de iteração envolve mais do que simplesmente aplicar uma função (por exemplo, quando há necessidade de condicionais ou lógica de controle adicional).
  • Use array_map quando:
  • Você deseja transformar todos os elementos de um array de maneira consistente.
  • Prefere uma abordagem funcional e imutável, onde o array original não é modificado.
  • A operação a ser aplicada a cada elemento é simples e pode ser encapsulada em uma função de callback.

Exemplos Práticos

Exemplo de foreach

Vamos considerar um cenário onde precisamos incrementar cada valor de um array em 1.

<?php

$numbers = [1, 2, 3, 4, 5];

foreach ($numbers as &$number) {
$number++;
}

print_r($numbers);

Neste exemplo, cada elemento do array $numbers é incrementado em 1. Note que usamos & para modificar os valores diretamente no array original.

Exemplo de array_map

Vamos realizar a mesma operação de incremento usando array_map.

<?php

$numbers = [1, 2, 3, 4, 5];

$incrementedNumbers = array_map(function($number) {
return $number + 1;
}, $numbers);

print_r($incrementedNumbers);

Aqui, array_map aplica a função anônima a cada elemento do array $numbers, retornando um novo array $incrementedNumbers com os valores incrementados.

Comparação de Performance

Em termos de performance, foreach pode ser ligeiramente mais rápido para operações simples devido à sua natureza iterativa e menor overhead. No entanto, a diferença geralmente é mínima e só se torna significativa em arrays muito grandes ou operações muito complexas.

Conclusão

Tanto foreach quanto array_map são ferramentas essenciais no arsenal de um desenvolvedor PHP. A escolha entre elas deve ser guiada pelo contexto da tarefa a ser realizada. Use foreach para operações complexas e modificações diretas e array_map para transformações funcionais e imutáveis. Compreender suas diferenças e saber quando usar cada uma permitirá que você escreva código PHP mais limpo, eficiente e expressivo.

--

--

Bruno Oliveira
0 Followers

Desenvolvedor Full Stack com experiência em todo o ciclo de desenvolvimento, especializado em PHP (Laravel, Codeigniter), Vue.js e arquitetura de software.