Aula 07 - Arrays e foreach em PHP.

article featured image

Até agora, sempre que precisámos de guardar informação, criámos uma variável.

Por exemplo, para guardar três produtos poderíamos fazer:

Funciona, mas imagine uma loja com 100 produtos.

Teríamos de criar:

Além de pouco prático, seria difícil trabalhar com todos esses dados.

O PHP disponibiliza uma estrutura chamada array, que permite guardar vários valores dentro de uma única variável.

Nesta aula vamos aprender a criar arrays, aceder aos seus elementos, alterar os seus valores e percorrê-los automaticamente utilizando o ciclo foreach.

 

1. O que é um array?

Um array é uma estrutura que permite guardar vários valores numa única variável.

Em vez de:

podemos escrever:

Agora temos uma única variável:

que contém três valores.

Podemos visualizar:

 

2. Criar um array

Uma das formas mais simples de criar um array em PHP é utilizar:

Também podemos escrever:

ou:

O array pode conter vários elementos.

 

3. Índices de um array

Quando criamos:

o PHP atribui automaticamente um índice a cada elemento.

Existe um detalhe muito importante:

O primeiro índice é 0, e não 1.

Assim:

ÍndiceValor
0Teclado
1Rato
2Monitor

Podemos representar:

Esta numeração iniciada em zero é muito comum em programação.

 

4. Aceder a um elemento

Para aceder a determinado elemento utilizamos o respetivo índice.

Resultado:

Teclado

Se utilizarmos:

obtemos:

Rato

e

apresenta:

Monitor

 

5. Atenção aos índices

Considere novamente:

Existem três elementos, mas os índices são:

Não existe neste momento:

Um erro frequente é pensar:

Tenho três produtos, logo o terceiro está na posição [3].

Não.

O terceiro elemento encontra-se em:

porque começamos a contar em zero.

 

6. Alterar um elemento

Podemos alterar um valor através do respetivo índice.

O array passa a conter:

Não criámos um novo array.

Alterámos apenas um dos seus elementos.

 

7. Adicionar elementos

Imagine:

Queremos acrescentar:

Impressora

Podemos fazer:

Agora temos:

O PHP atribui automaticamente o próximo índice disponível.

 

8. Quantos elementos existem?

PHP disponibiliza a função:

Por exemplo:

Resultado:

3

Podemos escrever:

Resultado:

Existem 3 produtos.

 

9. Ver o conteúdo de um array

Na Aula 2 utilizámos:

Também podemos utilizá-lo com arrays:

Isso permite observar a estrutura, os índices, os valores e os respetivos tipos.

Durante o desenvolvimento é muito útil para perceber o que realmente existe dentro de um array.

 

10. Percorrer um array

Considere:

Podíamos apresentar:

Mas voltamos ao problema inicial.

Se tivermos 100 produtos, teríamos de escrever 100 instruções.

Precisamos de uma forma de dizer ao PHP:

Para cada produto existente no array, executa determinado código.

É precisamente para isso que podemos utilizar o foreach.

 

11. O ciclo foreach

A estrutura básica é:

Exemplo:

Resultado:

O PHP percorreu automaticamente todos os elementos.

 

12. Compreender o foreach

Observe:

Podemos interpretar esta instrução como:

Para cada elemento de $produtos, coloca temporariamente esse valor em $produto e executa o código.

Assim:

Não precisamos de controlar manualmente índices ou contadores.

 

13. for ou foreach?

Na aula anterior aprendemos:

Também poderíamos percorrer o array desta forma:

Funciona.

Mas se o objetivo for simplesmente:

Percorrer todos os elementos de um array.

o foreach é normalmente mais simples:

Compare:

Isto não significa que o for deixou de ser útil. Cada estrutura tem situações onde faz mais sentido.

 

14. Utilizar o índice no foreach

Também podemos obter o índice:

Resultado:

Temos:

para a posição e:

para o valor.

 

15. Arrays associativos

Até agora utilizámos índices numéricos:

Mas PHP permite criar arrays onde nós próprios definimos as chaves.

Por exemplo:

Agora não temos:

Temos:

Chamamos a isto um array associativo.

 

16. Aceder a arrays associativos

Considere:

Para obter o nome:

Resultado:

João Silva

Para obter a turma:

Resultado:

111C

Visualmente:

Neste caso, as chaves têm significado e tornam a estrutura muito fácil de compreender.

 

17. Percorrer um array associativo

Também podemos utilizar foreach.

Resultado:

Em cada iteração:

 

18. Arrays multidimensionais

Podemos ainda guardar arrays dentro de outros arrays.

Imagine vários produtos:

Agora $produtos contém três produtos e cada produto possui vários dados.

Podemos imaginar:

Esta estrutura é particularmente importante porque começa a aproximar-se da forma como iremos trabalhar com registos provenientes de uma base de dados.

 

19. Percorrer vários produtos

Podemos fazer:

O foreach executará o mesmo código para cada produto.

Resultado:

 

20. Gerar cartões HTML

Agora podemos fazer algo mais interessante:

Temos apenas um bloco de código HTML, mas ele será repetido para todos os produtos.

Isto é muito importante para compreender posteriormente as páginas dinâmicas.

 

21. Arrays + foreach + if

Também podemos utilizar condições enquanto percorremos os dados.

Agora cada produto pode apresentar uma mensagem diferente dependendo do seu stock.

Estamos a combinar: ARRAY + FOREACH + IF

 

22. Exemplo completo

Considere:

Podemos apresentar:

Observe o que aconteceu.

Não criámos:

Criámos uma estrutura de apresentação e o PHP aplicou-a a todos os produtos.

 

23. Porque é que isto será importante no MySQL?

Mais tarde, em vez de escrevermos manualmente:

os dados serão obtidos de uma base de dados.

Conceptualmente teremos:

É por isso que esta aula não deve ser vista apenas como:

aprender arrays.

Estamos a preparar a lógica necessária para construir páginas Web dinâmicas alimentadas por bases de dados.

Post Anterior