Vamos aprender pra que serve e como usar neste tópico.
foreach
foreach funciona somente com arrays, e lançará um erro se tentar utilizá-lo em uma variável de qualquer tipo diferente ou em variáveis não inicializadas. Há duas sintaxes; a segunda é uma abreviatura, mas bem útil do que primeira:
foreach (expressao_array as $valor)
instrucoes
foreach (expressao_array as $chave => $valor)
instrucoes
A primeira forma varre uma dada matriz dada por expressao_array. Em cada 'loop', o valor do elemento corrente é atribuído a $valor e o ponteiro interno da matriz é avançado em uma posição (assim, no próxima iteração você estará olhando para o próximo elemento).
A segunda forma faz a mesma coisa, exceto pelo fato de que a chave do elemento atual será atribuído à variável $chave em cada iteração.
A partir do PHP 5, é possível iterar objetos também.
A partir do PHP 5, você pode modificar facilmente os elementos da matriz precedendo $value com &. Isto irá definir uma referência ao invés de copiar o valor.
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); //quebra a referência com o último elemento
?>
Exemplo de uso.
<?php
/* exemplo foreach 1: somente valores */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo "Valor atual de \$a: $v.\n";
}
/* exemplo foreach 2: valores (com a sua notação de chave de acesso mostrado
para ilustração) */
$a = array(1, 2, 3, 17);
$i = 0; /* para exemplo somente */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
$i++;
}
/* exemplo foreach 3: chaves e valores */
$a = array (
"um" => 1,
"dois" => 2,
"três" => 3,
"dezessete" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
/* exemplo foreach 4: arrays multidimensionais */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";
foreach ($a as $v1) {
foreach ($v1 as $v2) {
echo "$v2\n";
}
}
/* exemplo foreach 5: arrays dinâmicos */
foreach (array(1, 2, 3, 4, 5) as $v) {
echo "$v\n";
}
?>
Para mais informações visite o site do manual foreach no PHP.net
5 comentários:
Fiz um serialize com dados de checkbox e coloquei dados no banco mysql, queria recuperar os dados usando unserialize e marcar os checkbox quando for editar.. tem como?
Deus é fiel!
Excelente explicação!
Ótimo material, difícil encontrar algo assim na internet.
Parabéns pela explicação, me ajudou em uma duvida.
Postar um comentário