Boa noite pessoal,
agora pouco me lembrei que quando comecei a estudar PHP senti dificuldade na teoria do foreach, que por sinal é muito fácil, porém, nunca tinha achado uma teoria que entrasse na minha cabeça como a “teoria completa” rsss… Espero que possa tirar essa dúvida sem da nó na cabeça dos meus amigos internautas.
Primeiramente quero lembrar algumas coisinhas de ARRAY… vamos lá:
Array é nada mais que uma tabela que possui um índice/chave e que para cada índice/chave possui um valor e que se não for informado um índice/chave o PHP atribui automaticamente na ordem crescente de 0 até …
Calma calma… deixa eu exemplificar:
$carros = array(“Fusca”, “Gol”, “Uno”);
Essa array possui os valores Fusca, Gol e Uno e como não informamos nenhum índice ou chave para cada valor, o PHP de forma automática associou os índices para cada valor da array, que é semelhante conforme abaixo:
$carros = array(‘0′ => “Fusca”, ‘1′ => “Gol”, ‘2′ => “Uno”);
Fusca esta no índice 0
Gol esta no índice 1
Uno esta no índice 2
Maravilha, lembramos que array possui chaves/índices e valores e que cada chave/índice deve ser único e não pode se repetir.
Sabendo disso agora vamos ao tema do post, o tal do FOREACH.
Precisamos entender que o foreach é um construtor, que ele simplesmente varre uma array (na verdade só é possível interagir com arrays), em busca de seus conteúdos.
Excelente, agora sabemos que o construtor foreach tem a função de interagir com uma array e que ele faz a leitura nos valores e consequentemente atribui esses valores a uma variável.
Vamos ao exemplo:
Vamos criar uma array:
$carros = array(“Fusca”, “Gol”, “Uno”);
Com o foreach podemos pegar os valores dessa array desta forma:
PS: $carros é o nome da array que poderia ser qualquer outro nome, apenas seguindo as regras de criação de variáveis.
Também estou atribuindo os valores da array para $valor que poderia ser simplesmente qualquer outro nome, também seguindo as regras de criação de variáveis.
foreach ($array as $valor) {
echo $valor;
}
O que o foreach fez acima foi:
Busque na array $carros e para cada conteúdo encontrado atribua-o a variável $valor. Desta forma entendemos que o foreach é um loop e que ele busca dentro da array os conteúdos até buscar todos.
Maravilha sabemos como usar o foreach e como imprimir os valores de uma array.
Vamos entender agora como manusear o foreach utilizando os índices/chaves.
Como foi falado lá em cima, toda array possui um índice/chave e um valor e que se não especificarmos o próprio php especifíca em ordem crescente de 0 até … (0, 1, 2, 3, 4 ,5 …).
Com o foreach podemos buscar um valor que esteja em um determinado índice/chave ou simplesmente imprimir os valores que estejam entre a posição 0 e 10.
Então vamos lá entender com um exemplo:
Supondo que eu quero imprimir o 3o. (terceiro) carro da array $carros (no caso o GOL) eu faria simples assim:
foreach ($carros as $valor) {
echo $carros[2]
break;
}
Com isso será impresso o valor da posição 2, lembrando que o PHP atribui automaticamente os índices começando do 0. Desta forma sabemos que o valor impresso foi o GOL, pois é o 3 conteúdo da array.
Muito bem agora sabemos como imprimir valores em determinada posição de uma array.
Agora precisamos saber como imprimir também o índice.
Para imprimir o índice precisamos usar o foreach com o atributo as e =>, que funciona assim:
foreach ($carros as $chave => $valor) {
echo “o Veiculo $valor está na posição $chave”;
}
Com exemplo acima sabemos o seguinte:
Dentro da array $carros atribua com AS o índice/chave na variável $chave e com o => atribua o conteúdo a variável $valor.
Então fica entendido que:
Se omitirmos o => será atribuído apenas o conteúdo da array a uma variável.
Se utilizarmos o foreach com as e => será atribuído tanto o índice/chave e o valor.
O PHP é inteligente, ele só atribui o índice/chave se especificarmos, caso não, ele so atribui os valores.
Espero que tenham entendido,
favor deixem comentários sobre dúvidas ou outras coisitas mais