Menu

Array in PHP: creare, leggere, scorrere e stampare

Un array PHP è una lista ordinata di valori, ognuno salvato sotto una chiave: $fruits = ['apple', 'banana']; si legge come $fruits[0]. Impara a creare array, leggere e modificare elementi, scorrerli, stamparli e quale funzione per array usare.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

Un array PHP memorizza una lista di valori sotto delle chiavi. Creane uno con le parentesi quadre, $fruits = ['apple', 'banana', 'cherry'];, e leggi un elemento tramite il suo indice, $fruits[0]. Gli indici partono da 0, e count($fruits) dà il numero di elementi.

Ogni array PHP è una mappa ordinata: ogni valore sta sotto una chiave. Quando non scegli le chiavi, PHP le numera 0, 1, 2... e ottieni un array indicizzato. Quando le scegli tu (['name' => 'Ada']), ottieni un array associativo. Entrambi sono lo stesso tipo array.

Creare un array

Le parentesi quadre sono la sintassi abituale. array() è la grafia più vecchia e produce esattamente la stessa cosa. range() costruisce una lista di numeri o lettere, e array_fill() ripete un valore.

Un array PHP può contenere valori di tipi diversi insieme, compresi altri array. Un array di array è un array multidimensionale, il modo consueto per contenere righe di dati.

Ottenere il primo e l'ultimo elemento

PHP non ha indici negativi. $arr[-1] non significa "l'ultimo": cerca una chiave chiamata -1 e, quando non c'è, PHP stampa Warning: Undefined array key -1. Usa array_key_first() e array_key_last(), che funzionano anche quando le chiavi non partono da 0.

Anche end($queue) restituisce l'ultimo valore, ma come effetto collaterale sposta il puntatore interno dell'array, quindi la versione basata sulle chiavi è la scelta più chiara.

Stampare un array

echo $arr non funziona: stampa la parola Array e un warning. Scegli l'output adatto al compito:

  • print_r($arr) per un dump leggibile durante il debug.
  • var_dump($arr) per vedere anche il tipo e la lunghezza di ogni valore.
  • implode(', ', $arr) per trasformare i valori in una stringa da mostrare.
  • json_encode($arr) per inviare l'array a JavaScript o a un'API.

La pagina su print_r e var_dump tratta le opzioni di formattazione, compresa la stampa di un array dentro l'HTML.

Scorrere un array

foreach è il ciclo fatto per gli array: ti passa ogni valore, e anche la chiave se la chiedi. Anche un ciclo for con un indice funziona per gli array indicizzati le cui chiavi partono da 0 senza buchi.

Gli array vengono copiati, non condivisi

Assegnare un array a un'altra variabile, o passarlo a una funzione, dà una copia. Modificare la copia lascia intatto l'originale. Aggiungi & al parametro quando una funzione deve modificare l'array del chiamante.

Funzioni per array per compito

PHP include più di 70 funzioni per array. Queste sono quelle che userai di più, ognuna con la sua pagina:

CompitoFunzione
Aggiungere in fondoarray_push() o $arr[] =
Numero di elementicount()
Verificare se un valore esistein_array()
Trovare la chiave di un valorearray_search()
Verificare se una chiave esistearray_key_exists()
Unire arrayarray_merge()
Trasformare ogni valorearray_map()
Tenere alcuni valoriarray_filter()
Ordinaresort(), usort() e simili
Rimuovere un elementounset(), array_splice()
Prendere una partearray_slice()
Rimuovere i duplicatiarray_unique()
Da stringa ad array e ritornoexplode(), implode()

Chiavi che si fondono in silenzio

Le chiavi degli array sono interi o stringhe, e PHP converte alcune chiavi per te. Una stringa che sembra un numero decimale intero, come "1", diventa l'intero 1, quindi $a["1"] e $a[1] sono la stessa posizione. "01" e "1.5" restano stringhe. Ecco perché un array costruito dall'input di un form o da un CSV può finire con meno elementi del previsto.

Domande frequenti

Come creo un array in PHP?

Usa le parentesi quadre: $colors = ['red', 'green', 'blue'];. Un array vuoto è $items = [];. La vecchia sintassi array('red', 'green') fa la stessa cosa e funziona ancora.

Come stampo un array in PHP?

echo non può stampare un array (stampa la parola Array e un warning). Usa print_r($arr) per un dump leggibile, var_dump($arr) per vedere anche i tipi, oppure echo implode(', ', $arr) per stampare i valori su una riga.

Come ottengo l'ultimo elemento di un array in PHP?

Usa $arr[array_key_last($arr)] (PHP 7.3+) oppure end($arr). PHP non ha indici negativi: $arr[-1] cerca una chiave chiamata -1, che di solito non esiste.

Gli array PHP sono passati per valore o per riferimento?

Per valore. $b = $a; dà a $b una sua copia, quindi modificare $b non modifica $a. Per modificare l'array del chiamante dentro una funzione, dichiara il parametro come riferimento: function add(array &$list).

Qual è la differenza tra un array indicizzato e uno associativo in PHP?

Sono lo stesso tipo. Un array indicizzato ha chiavi intere 0, 1, 2... che PHP assegna per te; un array associativo usa chiavi scelte da te, di solito stringhe come 'name'. Un array può persino mescolare le due.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA