array()
La funzione array() in PHP crea un array. Scopri i tipi di array, la sintassi breve [] e le operazioni più comuni.
Introduzione
Il costrutto linguistico array() crea un array PHP — una mappa ordinata che associa chiavi a valori. Nonostante il nome "array", un array PHP è molto più flessibile di un array a dimensione fissa nei linguaggi come C o Java: un singolo array può contenere valori di tipi misti, crescere o ridursi a runtime e usare come chiavi sia interi che stringhe.
Questa pagina spiega come funziona array(), i tre tipi di array che puoi creare con esso, la moderna sintassi breve [], e le operazioni quotidiane (conteggio, aggiunta, ciclo) a cui ricorrerai più spesso. Ogni esempio è eseguibile.
Sintassi di base
array(value1, value2, value3, ...)
// or, since PHP 5.4, the short syntax:
[value1, value2, value3, ...]Puoi anche assegnare le chiavi in modo esplicito usando la freccia key => value:
array(key1 => value1, key2 => value2, ...)Entrambe le forme restituiscono un valore array. Le due sintassi sono intercambiabili; la forma breve [] è preferita nel codice moderno.
Creare un array
Quando non si forniscono chiavi, PHP assegna chiavi intere sequenziali a partire da 0. Quindi $fruits[0] è "apple", $fruits[1] è "banana" e $fruits[2] è "orange". Questo è un array indicizzato.
Array
(
[0] => apple
[1] => banana
[2] => orange
)I tre tipi di array
PHP usa un'unica struttura dati, array, per tre forme concettuali:
Array indicizzati
Le chiavi sono interi assegnati automaticamente. Usali per elenchi ordinati in cui conta solo la posizione.
<?php
$colors = ["red", "green", "blue"];
echo $colors[1]; // greenConsulta array indicizzati per approfondire.
Array associativi
Scegli chiavi stringa per etichettare ogni valore, ideale per record e ricerche.
<?php
$user = [
"name" => "Ada",
"email" => "[email protected]",
"age" => 36,
];
echo $user["email"]; // [email protected]Consulta array associativi per approfondire.
Array multidimensionali
Un valore può essere a sua volta un array, consentendoti di modellare tabelle e dati annidati.
<?php
$matrix = [
[1, 2, 3],
[4, 5, 6],
];
echo $matrix[1][2]; // 6Consulta array multidimensionali per approfondire.
Contare gli elementi
La funzione count() restituisce il numero di elementi di primo livello che un array contiene. Si abbina naturalmente a array():
<?php
$fruits = array("apple", "banana", "orange");
echo count($fruits); // 3Aggiungere elementi
Per aggiungere un valore in coda, usa la sintassi [] — è più breve di array_push() e più chiara per un singolo elemento:
<?php
$fruits = ["apple", "banana"];
$fruits[] = "cherry"; // appended with the next integer key (2)
$fruits["fav"] = "mango"; // added with an explicit string key
print_r($fruits);Array
(
[0] => apple
[1] => banana
[2] => cherry
[fav] => mango
)Questo mix di chiavi intere e stringa in un unico array è perfettamente valido — è proprio ciò che rende gli array PHP delle "mappe ordinate".
Scorrere un array
foreach è il modo idiomatico per percorrere ogni coppia chiave/valore e funziona con tutti e tre i tipi di array:
<?php
$user = ["name" => "Ada", "age" => 36];
foreach ($user as $key => $value) {
echo "$key: $value\n";
}name: Ada
age: 36Consulta il ciclo foreach per il riferimento completo.
Errori comuni
- Le chiavi duplicate vengono sovrascritte.
[1 => "a", 1 => "b"]mantiene solo"b"— vince l'ultimo valore assegnato a una chiave. - Le chiavi stringa che sembrano interi diventano interi.
["7" => "x"]viene memorizzato sotto la chiave intera7, quindi$a[7]e$a["7"]accedono allo stesso elemento. - Accedere a una chiave inesistente genera un avviso e restituisce
null. Prima verifica conarray_key_exists()oisset(). - Il conteggio riguarda solo il primo livello.
count()su un array multidimensionale restituisce il numero di elementi esterni, non il totale delle foglie.
Best practice
- Preferisci la sintassi breve
[]rispetto aarray()nel codice nuovo — è la convenzione moderna. - Usa chiavi stringa significative per i dati associativi, così il codice riflette il dominio che modella.
- Aggiungi con
$arr[] = ...invece diarray_push()quando si aggiunge un singolo valore. - Ordina con la funzione giusta per il tipo di chiave — consulta sorting arrays per
sort(),asort(),ksort()e simili.
Conclusione
Il costrutto array() (e la sua scorciatoia []) è il fondamento della gestione dei dati in PHP. Poiché un unico tipo array funge sia da lista indicizzata, sia da mappa associativa, sia da albero annidabile, padroneggiare creazione, conteggio, aggiunta e ciclo sblocca la maggior parte del toolkit di manipolazione dei dati del linguaggio.