Arrays
Esta aula cobre arrays em PHP, incluindo arrays indexados e associativos, formas de criação com colchetes e função array(), acesso a elementos e arrays multidimensionais. O conteúdo é prático e progressivo, com exemplos de código e exercícios para fixação.
Arrays são uma das estruturas de dados mais fundamentais e versáteis em PHP. Eles permitem armazenar múltiplos valores em uma única variável, organizados por chaves numéricas ou strings. PHP oferece uma sintaxe flexível e funções nativas poderosas para manipulação de arrays, tornando-os essenciais para qualquer aplicação.
Nesta aula, você aprenderá os dois tipos principais de arrays: indexados (com chaves numéricas) e associativos (com chaves nomeadas). Veremos como criá-los usando a sintaxe curta com colchetes e a função array(), como acessar e modificar elementos, e como trabalhar com arrays multidimensionais (arrays dentro de arrays). Ao final, você terá uma base sólida para usar arrays em projetos reais.
Indexados e associativos
Arrays indexados utilizam chaves numéricas inteiras, geralmente começando em 0. Eles são ideais para listas ordenadas de itens, como uma lista de nomes ou números. Já os arrays associativos usam chaves do tipo string, permitindo associar um rótulo a cada valor. Isso é útil para representar dados estruturados, como informações de um usuário (nome, email, idade).
Exemplo de array indexado: ['maçã', 'banana', 'laranja']. Exemplo de array associativo: ['nome' => 'João', 'idade' => 25]. Em PHP, ambos os tipos podem coexistir no mesmo array (chaves mistas), mas isso é menos comum.
// Array indexado
$frutas = ['maçã', 'banana', 'laranja'];
// Array associativo
$pessoa = [
'nome' => 'Maria',
'idade' => 30,
'cidade' => 'São Paulo'
];
Criação ([] e array())
PHP oferece duas sintaxes para criar arrays: a função array() (disponível desde versões antigas) e a sintaxe curta com colchetes [] (introduzida no PHP 5.4). A sintaxe curta é mais concisa e amplamente preferida atualmente. Ambas produzem o mesmo resultado.
Para criar um array vazio, use $arr = []; ou $arr = array();. Para criar com valores iniciais, liste os elementos separados por vírgula. A chave pode ser especificada explicitamente com => (para associativos) ou omitida (para indexados, onde a chave é atribuída automaticamente).
// Sintaxe com array()
$numeros = array(1, 2, 3);
$dados = array('nome' => 'Ana', 'idade' => 22);
// Sintaxe com [] (preferida)
$numeros = [1, 2, 3];
$dados = ['nome' => 'Ana', 'idade' => 22];
// Array vazio
$vazio = [];
Acesso
Para acessar um elemento de um array, use a sintaxe $array[chave]. Se a chave não existir, o PHP emitirá um aviso (notice) e retornará null. Para evitar isso, você pode verificar a existência com isset() ou usar o operador null coalescing (??) a partir do PHP 7.0.
Você também pode adicionar novos elementos atribuindo a uma chave inexistente ($array['nova_chave'] = valor) ou, para arrays indexados, usando colchetes vazios ($array[] = valor), que adiciona o valor ao final com a próxima chave numérica.
$carro = ['marca' => 'Toyota', 'modelo' => 'Corolla', 'ano' => 2020];
// Acessando
$marca = $carro['marca']; // 'Toyota'
// Verificando existência
if (isset($carro['cor'])) {
echo $carro['cor'];
} else {
echo 'Cor não definida';
}
// Usando null coalescing
$cor = $carro['cor'] ?? 'Desconhecida'; // 'Desconhecida'
// Adicionando elemento
$carro['cor'] = 'Prata';
$carro[] = 'novo campo'; // adiciona com chave 0 se não existir (cuidado)
Multidimensionais
Arrays multidimensionais são arrays que contêm outros arrays como elementos. Eles são úteis para representar dados tabulares, como matrizes ou listas de objetos. Por exemplo, uma lista de alunos, onde cada aluno é um array associativo com nome, nota etc.
Para acessar elementos em arrays multidimensionais, basta encadear as chaves: $array['chave1']['chave2']. Você pode ter quantas dimensões forem necessárias, mas lembre-se de que a complexidade aumenta com cada nível.
// Array bidimensional indexado
$matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
echo $matriz[1][2]; // 6
// Array bidimensional associativo
$alunos = [
[
'nome' => 'Carlos',
'notas' => [8, 7, 9]
],
[
'nome' => 'Julia',
'notas' => [10, 9, 8]
]
];
echo $alunos[0]['notas'][1]; // 7
// Adicionando um novo aluno
$alunos[] = [
'nome' => 'Pedro',
'notas' => [6, 5, 7]
];
Boas práticas
Prefira a sintaxe curta com colchetes para criar arrays, pois é mais limpa e moderna. Sempre verifique a existência de chaves antes de acessá-las para evitar warnings. Use nomes de chaves significativos em arrays associativos para melhor legibilidade. Para percorrer arrays, utilize estruturas como foreach, que exploraremos em aulas futuras. Evite arrays excessivamente aninhados; considere usar objetos ou classes para dados complexos.
Exercícios
- Crie um array indexado com os números de 1 a 5 e imprima o terceiro elemento.
- Crie um array associativo representando um livro com chaves 'titulo', 'autor' e 'ano'. Acesse e exiba o título.
- Adicione um elemento 'editora' ao array do exercício 2 usando a sintaxe de colchetes.
- Crie um array multidimensional que represente duas pessoas, cada uma com nome e idade. Acesse a idade da segunda pessoa.
- Usando o array do exercício 4, adicione uma terceira pessoa com nome 'Carol' e idade 22.
$numeros = [1, 2, 3, 4, 5];
echo $numeros[2]; // 3$livro = [
'titulo' => '1984',
'autor' => 'George Orwell',
'ano' => 1949
];
echo $livro['titulo']; // 1984$livro['editora'] = 'Companhia das Letras';$pessoas = [
['nome' => 'Alice', 'idade' => 25],
['nome' => 'Bob', 'idade' => 30]
];
echo $pessoas[1]['idade']; // 30$pessoas[] = ['nome' => 'Carol', 'idade' => 22];