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]; // ToyotaAccedere 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]; // MercedesL'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); // 3Scorrere 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
ToyotaSe 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: ToyotaUn 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 restano0e2. Chiamaarray_values()per reindicizzare da0se 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 da0, 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.