Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

O Loop FOREACH - Laço de arrays

Neste tutorial de nossa apostila de PHP, vamos aprender o que é e como usar o FOREACH, laço especialmente criado para se usar com arrays.

Obrigatório: Baixe a apostila PHP Progressivo

O Laço foreach as ... para arrays numéricos

Como se já não bastasse o número de laços (while, do while e for) existentes na linguagem, os criadores do PHP desenvolveram um especialmente para se usar com arrays, o foreach as.

Vamos pegar o array:
$carros = array('gol', 'celta', 'fox', 'corolla', 'civic');

Para exibir esses carros usando foreach, fazemos:
 <?php
  $carros = array('gol', 'celta', 'fox', 'corolla', 'civic');
  
  foreach($carros as $car)
   echo "$car <br />";
 ?>
O que ocorre é o seguinte...fazemos com que o array $car assuma o valor de cada elemento do array maior $carros.

Assim, o laço foreach percorre todos os elementos do array $carros, onde podemos trabalhar da maneira que quisermos com cada item.

O Loop foreach as ... para arrays associativos

Embora não sejam estruturas enumeradas e logicamente organizadas, é possível usar o laço foreach com arrays associativos também.

Vamos definir um array de chaves e valores da seguinte forma:
$carros['popular'] = 'celta';
$carros['sedan'] = 'corolla';
$carros['premium'] = 'bmw';
$carros['suv'] = 'hr-v';

Para exibir da chave e cada valor, com foreach, um por linha, fazemos:
 <?php
  $carros['popular'] = 'celta';
  $carros['sedan'] = 'corolla';
  $carros['premium'] = 'bmw';
  $carros['suv'] = 'hr-v';
  foreach($carros as $chave => $valor)
   echo "$chave : $valor <br />";
 ?>
A variável $chave vai pegar o valor de cada key do array $carros e a variável $valor o value de cada elemento correspondente, assim podemos acessar e alterar esses elementos da maneira que quisermos.

Note que é possível percorrer arrays gigantescos, medonhos e ir fazendo alterações, copiando, ou o que for, de uma maneira muito simples e totalmente automatizada com o laço foreach as...que inglês significa "para cada ... como..."

Ou seja, "para cada elemento do array, trate como"...e o foreach vai sozinho pegando um por um, todos os elementos do array.