A instrução foreach no PHP

A instrução foreach, usada no PHP para varrer arrays.
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:

Marcelo Menezes disse...

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?

Anônimo disse...

Deus é fiel!

Cadal disse...

Excelente explicação!

Anônimo disse...

Ótimo material, difícil encontrar algo assim na internet.

Anônimo disse...

Parabéns pela explicação, me ajudou em uma duvida.

Postar um comentário

Postagens recentes Postagens antigas Inicio
Geo Visitors Map