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ão1.
Assim:
| Índice | Valor |
|---|---|
0 | Teclado |
1 | Rato |
2 | Monitor |
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.