Curso de PHP: Estrutura de repetição foreach
Aqui no site já foi explicado anteriormente sobre o funcionamento dos arrays (matrizes). A tarefa mais comum quando trabalhamos com arrays é percorrer o array para ler cada item. É muito comum usar a estrutura de repetição for para isso, mas também é possível usar o while. Mas agora apresento uma nova, e as vezes mais apropriada para isso: o foreach
Veja sua estrutura:
foreach ($variavel as $chave => $valor) {
instrução1;
instrução2;
instruçãoN;
}O foreach percorre cada item da $variavel. Em cada item, ele armazena a chave do ítem na variável $chave e seu respectivo valor em $valor.
Para exemplificar melhor, abaixo há um código que percorre um array usando o for:
<?php
$nomes = array('Edgar', 'Maria', 'Carlos');
for ($i = 0; $i < 3; $i++) {
echo 'Posição: ' . $i . ' Nome: ' . $nomes[$i] . '<br />';
}O mesmo código usando o foreach poderia ser escrito assim:
<?php
$nomes = array('Edgar', 'Maria', 'Carlos');
foreach ($nomes as $posicao => $nome) {
echo 'Posição: ' . $posicao . ' Nome: ' . $nome . '<br />';
}
Perceba que é o mesmo resultado.
O foreach chega a facilitar mesmo quando o seu array contém índices não numéricos. Veja:
<?php
$nomes = array('filho' => 'Edgar', 'mae' => 'Maria', 'pai' => 'Carlos');
foreach ($nomes as $parentesco => $nome) {
echo 'Parentesco: ' . $parentesco . ' Nome: ' . $nome . '<br />';
}
Até é possível escrever o código acima com for, mas é muito mais simples usar o foreach.
E se você não precisar usar a chave, você pode ocultá-la:
<?php
$nomes = array('filho' => 'Edgar', 'mae' => 'Maria', 'pai' => 'Carlos');
foreach ($nomes as $nome) {
echo ' Nome: ' . $nome . '<br />';
}Observação: O foreach pode ser utilizado com outro tipo de variável, os objetos, porém, quando chegar a hora irei comentar.
- Login to post comments




