Arrays Indexados
Aprenda a criar, acessar, modificar e percorrer arrays indexados em PHP com chaves numéricas automáticas a partir de 0.
Arrays Indexados em PHP
Um array indexado é o tipo mais simples de array em PHP: uma lista de valores onde cada item recebe automaticamente uma chave numérica (sua posição), começando em 0. Use-o sempre que tiver uma coleção ordenada — uma lista de produtos, as linhas de um arquivo, as linhas de um conjunto de resultados — e não precisar de um nome significativo para cada posição.
O PHP tem três tipos de array no total: arrays indexados (chaves numéricas, abordados aqui), arrays associativos (chaves de string nomeadas) e arrays multidimensionais (arrays de arrays). Esta página aborda como criar arrays indexados e como ler, alterar, adicionar, contar e percorrer seus valores.
Criando um Array Indexado
Existem duas formas equivalentes de construir um array indexado. A sintaxe curta [] (PHP 5.4+) é a forma moderna e preferida; a função array() funciona em todas as versões do PHP.
// Short syntax (recommended)
$cars = ["Volvo", "BMW", "Toyota"];
// Long syntax — identical result
$cars = array("Volvo", "BMW", "Toyota");De qualquer forma, o PHP atribui as chaves automaticamente: "Volvo" recebe o índice 0, "BMW" recebe 1 e "Toyota" recebe 2. Um array vazio é simplesmente $cars = [];, pronto para receber itens posteriormente.
Acessando Valores
Leia um valor colocando seu índice entre colchetes. Lembre-se de que o primeiro elemento está no índice 0, portanto o índice do último elemento é sempre um a menos que o número de itens.
$cars = ["Volvo", "BMW", "Toyota"];
echo $cars[0]; // Volvo
echo $cars[2]; // ToyotaAcessar uma chave que não existe (por exemplo, $cars[9]) retorna null e emite um aviso Warning: Undefined array key — proteja-se com in_array() ou isset() quando não tiver certeza se uma chave existe.
Modificando Valores
Atribua um novo valor a um índice existente para sobrescrevê-lo:
$cars = ["Volvo", "BMW", "Toyota"];
$cars[0] = "Mercedes";
echo $cars[0]; // MercedesO array ainda tem três elementos; apenas o valor no índice 0 mudou.
Adicionando Valores
Para acrescentar ao final do array, atribua à sintaxe de colchetes vazios [] — o PHP escolhe o próximo índice disponível automaticamente. A função array_push() faz o mesmo e pode adicionar vários valores de uma vez:
$cars = ["Volvo", "BMW", "Toyota"];
$cars[] = "Audi"; // index 3
array_push($cars, "Tesla", "Kia"); // indexes 4 and 5
print_r($cars);Isso exibe:
Array
(
[0] => Volvo
[1] => BMW
[2] => Toyota
[3] => Audi
[4] => Tesla
[5] => Kia
)Contando Elementos
Use count() para descobrir quantos itens um array contém — útil para exibir totais ou como limite superior de um loop:
$cars = ["Volvo", "BMW", "Toyota"];
echo count($cars); // 3Percorrendo um Array Indexado
A forma mais limpa de visitar cada valor é um loop foreach, que funciona independentemente de quantos itens existam:
$cars = ["Volvo", "BMW", "Toyota"];
foreach ($cars as $car) {
echo $car . PHP_EOL;
}Saída:
Volvo
BMW
ToyotaSe você também precisar do índice de cada item, capture a chave também:
$cars = ["Volvo", "BMW", "Toyota"];
foreach ($cars as $index => $car) {
echo "$index: $car" . PHP_EOL;
}
// 0: Volvo
// 1: BMW
// 2: ToyotaUm loop for clássico é uma alternativa quando você quer controle numérico explícito:
$cars = ["Volvo", "BMW", "Toyota"];
for ($i = 0; $i < count($cars); $i++) {
echo $cars[$i] . PHP_EOL;
}Armadilhas Comuns
- As chaves nem sempre são sequenciais. Remover um elemento com
unset($cars[1])deixa um "buraco" — as chaves restantes permanecem0e2. Chamearray_values()para reindexar a partir de0se precisar de uma lista limpa. - Indexado vs. associativo é fluido. Adicionar uma chave de string (
$cars["best"] = "Volvo") transforma o array em um misto/associativo. Para manter um array puramente indexado, apenas acrescente ou atribua chaves inteiras. - A ordenação reordena e às vezes reindexia. Funções como
sort()reindexam o array a partir de0, o que geralmente é o desejado para uma lista indexada.
Conclusão
Arrays indexados armazenam uma lista ordenada de valores sob chaves numéricas automáticas começando em 0. Você os cria com [], lê e sobrescreve valores por índice, acrescenta com $arr[] ou array_push(), mede com count() e itera com foreach. Quando precisar de dados rotulados em vez de posicionais, use um array associativo.