W3docs

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]; // Toyota

Acessar 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]; // Mercedes

O 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); // 3

Percorrendo 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
Toyota

Se 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: Toyota

Um 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 permanecem 0 e 2. Chame array_values() para reindexar a partir de 0 se 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 de 0, 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.

Prática

Prática
Quais das seguintes afirmações sobre Arrays Indexados em PHP são verdadeiras?
Quais das seguintes afirmações sobre Arrays Indexados em PHP são verdadeiras?
Was this page helpful?