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.