Fala a verdade pequeno escoteiro, tá bem legal, não tá? No post anterior aprendemos como obter dados dos nossos usuários e ainda aprendemos a trabalhar com concatenação de strings, porém String como eu já comentei, é um assunto bem amplo e ainda aprofundaremos muito mais nela ainda nesse curso. No momento precisamos falar de outro assunto muito importante e que com certeza será um dos recursos que você mais vai usar em sua vida como programador PHP, os Arrays.
O que é um Array?
Array é "como se fosse" uma lista. Com os arrays podemos armazenar diversos itens em uma mesma variável, ou seja, podemos salvar:
- Lista de nome de pessoas
- Lista de produtos
- Lista de números
- etc...
Cada item dessa lista fica associado a um índice, e podemos acessar essa informação simplesmente informando para o Array o índice do item que queremos receber.
Vamos a um exemplo:
<?php
$numeros = [10, 12, 32, 9, -2, 0, 1];
echo $numeros[0];
No PHP existem várias formas de se criar um Array, mas para simplificar vamos pegar por enquanto a mais simples e mais popular que é usando colchetes.
Cada item do Array é separado por virgulas dentro dos Colchetes e se não informarmos explicitamente um índice, o PHP criará os índices com números inteiros começando sempre do 0 (zero), ou seja, no exemplo acima os índices ficariam assim:
- 0 -> 10
- 1 -> 12
- 2 -> 32
- 3 -> 9
- 4 -> -2
- 5 -> 0
- 6 -> 1
Ao executarmos o código acima, será impresso no console o número 10, visto que é ele está na posição 0 ou seja, o índice dele é o 0.
Se quisermos imprimir o número -2 teríamos que acessar a posição 4
<?php
$numeros = [10, 12, 32, 9, -2, 0, 1];
echo $numeros[4];
Inserindo elemento em um Array
Novamente existem várias formas de se inserir um elemento em um Array, mas por hora vamos ver as principais.
Exemplo: inserindo itens sem definir o índice
<?php
$numeros = [];
$numeros[] = 55;
echo $numeros[0];
Vamos analisar linha a linha o código acima
- O PHP alocará um espaço em memória (Memória RAM) e associará esse espaço à variável $numeros
- Ainda na mesma linha será atribuído a esse espaço de memória, como seu valor, um Array Vazio, ou seja, sem itens.
- Na linha seguinte temos $numeros[] = 55; Ao atribuir um valor a uma posição indefinida de um Array, o PHP coloca esse item no final do Array, como nesse exemplo nosso Array não tem elemento algum, coincidentemente a última posição também será a primeira, logo, esse elemento será inserido na posição 0.
- Na última linha temos echo $numeros[0]; que se encarregará de imprimir o valor constante na posição 0 desse Array, ou seja, o valor 55.
Eu posso também inserir elementos em posições específicas, simplesmente informando o índice onde eu quero inserir.
<?php
$numeros = [57, 12, 23];
// Irá inserir na posição 10
$numeros[10] = 55;
// Irá inserir na posição 11
$numeros[] = 63;
print_r($numeros);
No exemplo acima, eu declarei uma variável chamara $numeros e atribui a ela um Array já com 3 elementos, ou seja, como não foram definidos os índices, esses números serão posicionados nos índices:
- 0 -> 57
- 1 -> 12
- 2 -> 23
Na sequência eu disse que na posição 10 eu quero inserir o valor 55. Nesse momento o PHP irá pular os índices de 3 a 9 e criar uma posição 10, ficando assim:
- 0 -> 57
- 1 -> 12
- 2 -> 23
- 10 -> 55
Em seguida eu mandei o PHP inserir mais um item de valor 63 na próxima posição, que nesse caro seria a posição de índice 11.
E por fim usei a função print_r que ainda não tínhamos visto.
A função print_r consegue imprimir para nós um Array mostrando sua associação indice -> valor. O resultado será:
Array
(
[0] => 57
[1] => 12
[2] => 23
[10] => 55
[11] => 63
)
Em outras linguagens de programação os Arrays suportam apenas elementos do mesmo tipo, no PHP você pode fazer uma salada de fruta da forma que quiser.
Exemplo com diferentes dados
<?php
$lista = ["Melancia", 57, 9.8, [1, 2]];
print_r($lista);
O resultado seria
Array
(
[0] => Melancia
[1] => 57
[2] => 9.8
[3] => Array
(
[0] => 1
[1] => 2
)
)
Ou seja, na posição 0 eu tenho uma String, na posição 1 eu tenho um número inteiro, na posição 2 eu tenho um Float (número decimal) e na posição 3 eu tenho outro Array com 2 itens.
E se eu quiser inserir vários itens ao mesmo tempo, porém cada um em uma posição específica?
<?php
$lista = [
1 => "Melancia",
3 => "Cajú",
8 => "Manga"
];
print_r($lista);
O resultado seria
Array
(
[1] => Melancia
[3] => Cajú
[8] => Manga
)
Array assossiativo
Como vimos podemos inserir posições sem obedecer um sequência bem definida em nossos Arrays, e o PHP inclusive permite que você cadastre Strings como sendo Índices.
Vamos ver como isso funciona?
<?php
$cadastro = [
"site" => "Acampamento Dev",
"curso" => "PHP",
"aula" => "Curso de PHP: #10 - Trabalhando com Arrays"
];
echo $cadastro["site"];
Ao executar o programa acima o resultado no console será: Acampamento Dev
Ainda tem muito mais coisas legais sobre Arrays para vermos, mas por hora esse é o mínimo que você precisa saber para já começar com o pé direito. Em um momento mais oportuno aprofundaremos mais o nosso conhecimento em Arrays.
Desafio
Complete o código abaixo para criar um programa que:
- Solicite do usuário suas 3 notas da escola.
- Associe essas notas às posição 0, 1 e 2 do array $notas.
- Verifique se a média é maior ou igual a 7, se sim, imprima APROVADO, senão imprima REPROVADO.
<?php
$notas = [];
// ...
$media = ($notas[0] + $notas[1] + $notas[3]) / 3;
Até a próxima, escoteiro!!!