Como Usar o Laço Foreach em PHP: O Guia Definitivo para Arrays

Laço Foreach em PHP: Como Percorrer Arrays (Passo a Passo) 

Nas aulas anteriores da nossa Apostila de PHP Progressivo, nós desbravamos o universo dos Arrays. Aprendemos a criar listas numéricas, mapear dados com Arrays Associativos e até a gerar listas automáticas com a função range().

Mas existe um "elefante na sala": de que adianta ter um array gigantesco, cheio de dados importantes de um Banco de Dados, se você não sabe como "ler" esses dados um por um de forma automatizada para mostrar na tela do usuário?

Como se já não bastasse o número de laços convencionais (while, do while e for) existentes na linguagem, os criadores do PHP desenvolveram uma estrutura de repetição especialmente criada para varrer Arrays. Prepare-se para conhecer o seu novo melhor amigo na programação web: o laço foreach.

O que é o Laço Foreach em PHP?

O foreach (que em português significa "para cada") é uma estrutura de controle de repetição exclusiva para interagir com arrays e objetos. Diferente do laço for, você não precisa criar um contador numérico (ex: $i = 0) ou saber o tamanho exato do array. O foreach automaticamente percorre a lista do primeiro ao último elemento, parando sozinho quando os dados acabam.

A beleza do foreach é que ele gera um código limpo (Clean Code) e à prova de falhas (bugs de loop infinito). Vamos ver como ele funciona na prática nos dois cenários mais comuns do mercado.

O Laço foreach para Arrays Numéricos (Simples)

Para ler arrays comuns (indexados por números automáticos), a sintaxe é extremamente descritiva: foreach ($array_original as $item_atual). A leitura literal disso é: "Para cada elemento dentro do meu array, trate-o como uma variável chamada $item_atual".

Vamos pegar o seguinte array de carros populares e exibi-los na tela:

<?php
// 1. Nosso array principal (a sacola com os dados)
$carros = ['Gol', 'Celta', 'Fox', 'Corolla', 'Civic'];

// 2. O laço mágico
foreach ($carros as $car) {
    echo "Carro disponível: $car <br>";
}
?>

O que acontece nos bastidores (Raio-X Sênior):

  1. Na primeira "volta" do loop, o PHP vai no array $carros, pega o índice [0] ("Gol") e joga dentro da variável temporária $car. O comando echo imprime "Gol".
  2. Na segunda volta, o PHP pega o índice [1] ("Celta"), joga em $car, e imprime.
  3. Isso se repete automaticamente até o "Civic". Quando o PHP tenta ir para o próximo e percebe que o array acabou, ele encerra o laço com segurança. Fim da dor de cabeça!

Solidifique sua Lógica de Programação

Se você entende como loops funcionam, você constrói qualquer sistema. Pratique exaustivamente com nosso material oficial.

Mega Pack 7 Apostilas de Programação PDF

Conheça nosso Mega Pack de Apostilas PDF e aprenda no seu ritmo, offline e com exercícios baseados no mercado real.

O Loop foreach para Arrays Associativos (Chave => Valor)

Aqui é onde o foreach mostra seu verdadeiro poder. Lembre-se: os Arrays Associativos não são organizados por números lógicos (0, 1, 2), mas sim por palavras-chave definidas por você (ex: 'popular', 'sedan').

Se as chaves são nomes customizados, não há como usar o loop for tradicional para procurá-las. A sintaxe especial do foreach para resgatar tanto a chave quanto o valor é: foreach ($array as $chave => $valor).

Acompanhe este exemplo corporativo de uma concessionária:

<?php
// Definindo nosso array associativo (Key => Value)
$carros = [
    'popular' => 'Celta',
    'sedan'   => 'Corolla',
    'premium' => 'BMW M3',
    'suv'     => 'HR-V'
];

// O PHP extrai a Chave e o Valor a cada volta do loop
foreach ($carros as $categoria => $modelo) {
    echo "Categoria: <strong>$categoria</strong> | Modelo Sugerido: $modelo <br>";
}
?>

A variável $categoria vai capturar as chaves ('popular', 'sedan'...) e a variável $modelo vai armazenar o dado correspondente àquela chave na volta atual. Você tem o controle absoluto sobre as duas informações!

Conteúdo Avançado: Modificando Valores do Array (Por Referência)

Para você se destacar no mercado, vamos ensinar um "pulo do gato". O comportamento padrão do foreach é apenas ler os dados copiando-os para a variável temporária. Se você alterar a variável temporária dentro do loop, o array original continua intacto.

Mas, e se você precisar varrer um array de preços e aplicar 10% de desconto em todos eles? Para que o foreach modifique o array original de verdade, você deve usar o caractere & (E comercial) antes do valor. Isso é chamado de "Passagem por Referência".

<?php
$precos = [100, 200, 300];

// O "E comercial" (&) conecta $valor diretamente ao array original
foreach ($precos as &$valor) {
    $valor = $valor * 2; // Dobra o preço
}
unset($valor); // Boa prática Sênior: quebra a referência ao fim do laço

// O array original agora está modificado permanentemente!
print_r($precos); // [200, 400, 600]
?>

Simulador Interativo: Veja o Foreach em Ação!

Visualize passo a passo como o PHP itera (varre) um array associativo. Clique no botão "Próxima Volta" para entender o fluxo lógico.

⚙️ Raio-X do Foreach (Passo a Passo)

$usuario = ['nome' => 'Ana', 'idade' => 28, 'cargo' => 'Dev'];

foreach ($usuario as $chave => $valor) {
  echo "$chave = $valor";
}
Volta: 0 / 3
Terminal de Saída:
Aguardando execução...

Você quer fazer Listagens de Banco de Dados? 🗄️

O segredo por trás de toda loja virtual, feed do Facebook ou listagem de posts num blog é um laço FOREACH. O sistema busca no MySQL uma matriz de dados, e o foreach gera automaticamente o HTML (divs e imagens) para cada produto. Domine essa integração estudando com a nossa Apostila Premium!

"Sempre tive dificuldade com os laços for e while. Quando peguei a apostila e entendi como integrar o PHP com HTML usando Foreach, eu finalmente consegui criar meu primeiro sistema de Loja Virtual funcional."
- Lucas G., Desenvolvedor Web.
📥 Baixar Apostila e Aprender Integração MySQL

Nenhum comentário: