W3docs

Array Indicizzati

Scopri gli array indicizzati in PHP: come crearli, accedere ai valori, modificarli, aggiungere elementi e iterare con foreach e for.

Array Indicizzati in PHP

Un array indicizzato è il tipo più semplice di array PHP: un elenco di valori in cui a ogni elemento viene assegnata automaticamente una chiave numerica (la sua posizione), a partire da 0. Usalo ogni volta che hai una collezione ordinata — un elenco di prodotti, le righe di un file, le righe di un risultato — e non hai bisogno di un nome significativo per ogni posizione.

PHP dispone in totale di tre tipi di array: array indicizzati (chiavi numeriche, trattati qui), array associativi (chiavi stringa con nome) e array multidimensionali (array di array). Questa pagina spiega come creare array indicizzati e come leggere, modificare, aggiungere, contare e scorrere i loro valori.

Creare un Array Indicizzato

Esistono due modi equivalenti per creare un array indicizzato. La sintassi breve [] (PHP 5.4+) è la forma moderna e preferita; la funzione array() funziona su qualsiasi versione di PHP.

// Short syntax (recommended)
$cars = ["Volvo", "BMW", "Toyota"];

// Long syntax — identical result
$cars = array("Volvo", "BMW", "Toyota");

In entrambi i casi, PHP assegna automaticamente le chiavi: "Volvo" riceve l'indice 0, "BMW" riceve 1 e "Toyota" riceve 2. Un array vuoto è semplicemente $cars = [];, pronto per ricevere elementi in seguito.

Accedere ai Valori

Per leggere un valore, inserisci il suo indice tra parentesi quadre. Ricorda che il primo elemento si trova all'indice 0, quindi l'indice dell'ultimo elemento è sempre uno in meno rispetto al numero di elementi.

$cars = ["Volvo", "BMW", "Toyota"];

echo $cars[0]; // Volvo
echo $cars[2]; // Toyota

Accedere a una chiave inesistente (ad esempio $cars[9]) restituisce null ed emette un avviso Warning: Undefined array key — usa in_array() o isset() come protezione quando non sei sicuro che una chiave sia presente.

Modificare i Valori

Assegna un nuovo valore a un indice esistente per sovrascriverlo in posizione:

$cars = ["Volvo", "BMW", "Toyota"];
$cars[0] = "Mercedes";

echo $cars[0]; // Mercedes

L'array contiene ancora tre elementi; è cambiato solo il valore all'indice 0.

Aggiungere Valori

Per aggiungere un elemento alla fine dell'array, assegna alla sintassi con parentesi vuote [] — PHP sceglie automaticamente il prossimo indice disponibile. La funzione array_push() fa la stessa cosa e può aggiungere più valori contemporaneamente:

$cars = ["Volvo", "BMW", "Toyota"];

$cars[] = "Audi";                 // index 3
array_push($cars, "Tesla", "Kia"); // indexes 4 and 5

print_r($cars);

Questo produce:

Array
(
    [0] => Volvo
    [1] => BMW
    [2] => Toyota
    [3] => Audi
    [4] => Tesla
    [5] => Kia
)

Contare gli Elementi

Usa count() per sapere quanti elementi contiene un array — utile per mostrare totali o come limite superiore di un ciclo:

$cars = ["Volvo", "BMW", "Toyota"];
echo count($cars); // 3

Scorrere un Array Indicizzato

Il modo più semplice per visitare ogni valore è un ciclo foreach, che funziona indipendentemente dal numero di elementi:

$cars = ["Volvo", "BMW", "Toyota"];

foreach ($cars as $car) {
    echo $car . PHP_EOL;
}

Output:

Volvo
BMW
Toyota

Se hai bisogno anche dell'indice di ogni elemento, cattura anche la chiave:

$cars = ["Volvo", "BMW", "Toyota"];

foreach ($cars as $index => $car) {
    echo "$index: $car" . PHP_EOL;
}
// 0: Volvo
// 1: BMW
// 2: Toyota

Un classico ciclo for è un'alternativa quando si desidera un controllo numerico esplicito:

$cars = ["Volvo", "BMW", "Toyota"];

for ($i = 0; $i < count($cars); $i++) {
    echo $cars[$i] . PHP_EOL;
}

Errori Comuni

  • Le chiavi non sono sempre sequenziali. Rimuovere un elemento con unset($cars[1]) lascia un "buco" — le chiavi rimanenti restano 0 e 2. Chiama array_values() per reindicizzare da 0 se hai bisogno di un elenco pulito.
  • Indicizzato e associativo sono intercambiabili. Aggiungere una chiave stringa ($cars["best"] = "Volvo") trasforma l'array in uno misto/associativo. Per mantenere un array puramente indicizzato, aggiungi o assegna sempre e solo chiavi intere.
  • L'ordinamento riordina, a volte reindicizza. Funzioni come sort() reindicizzano l'array da 0, che è di solito quello che si vuole per un elenco indicizzato.

Conclusione

Gli array indicizzati memorizzano un elenco ordinato di valori sotto chiavi numeriche automatiche a partire da 0. Si creano con [], si leggono e sovrascrivono i valori per indice, si aggiungono elementi con $arr[] o array_push(), si misurano con count() e si iterano con foreach. Quando hai bisogno di dati etichettati anziché posizionali, usa invece un array associativo.

Esercitazione

Pratica
Quali delle seguenti affermazioni sugli Array Indicizzati in PHP sono vere?
Quali delle seguenti affermazioni sugli Array Indicizzati in PHP sono vere?
Was this page helpful?