Guida a PHP: gli array

Gli array sono contenitori di informazioni destinati agli usi più vari in PHP: data l’importanza che essi rivestono, vedremo in dettaglio in questo post come si crea e si manipola un array.

Introduzione

Array di dimensione nUn array è un contenitore di informazioni di dimensione dinamica, ossia pari al numero di valori (elementi) contenuti e in grado di espandersi in modo trasparente: non esiste limite alla dimensione di un array, se non la memoria fisicamente disponibile per memorizzarlo; essendo PHP un linguaggio debolmente tipato, ossia a ciascuna variabile non è assegnato un tipo fisso ma dipende dal valore effettivamente contenuto, un array può contenere valori di tipo diverso.

Array indicizzati e associativi

Per selezionare uno specifico elemento dell’array è possibile ricorrere a:

  • la posizione (indice): in un array di dimensione n il primo elemento ha indice 0, l’ultimo n-1;
  • la chiave: è possibile associare a ciascun elemento un valore univoco (intero o stringa) al momento dell’inserimento nell’array.

In PHP tutti gli array sono associativi: oltre ad un eventuale chiave esplicita definita dall’utente, ciascun elemento è individuato univocamente dall’indice stesso; da notare come, assegnando una chiave intera ad un valore, si cambi a tutti gli effetti l’indice associato, che può dunque non rispecchiare la sua effettiva posizione nell’array.

In particolare, se si aggiungono diversi elementi al momento di creare l’array e ad uno o più di questi si assegna una chiave intera esplicita, l’indice di tutti gli elementi successivi (sino escluso all’eventuale elemento seguente con chiave intera esplicita) viene posto uguale all’intero immediatamente successivo all’indice massimo degli elementi precedenti (in pratica, sommando alla suddetta chiave esplicita la posizione relativa dell’elemento corrente rispetto all’elemento cui tale chiave è riferita). Vediamolo con un semplice esempio:

<?php
// array('1' => 'Gennaio', 2 => 'Febbraio', 3 => 'Marzo', 4 => 'Aprile')
$var1 = array(1 => 'Gennaio', 'Febbraio', 'Marzo', 'Aprile');
?>

Creare un array

Il primo passo consiste nel creare un array chiamando la funzione array():

  • array(): array vuoto;
  • array(k_1 => v_1, k_2 => v_2, ...): array contenente una lista di valori (v_i) con le rispettive chiavi (k_i).

Nel secondo caso, l’utente è libero di indicare o meno – per ogni singolo elemento dell’array – una chiave esplicita: ciò significa che è possibile, nello stesso array, indicarla per alcuni elementi (stringa e/o intero) ma non per altri oltre che utilizzare nello stesso array chiavi di tipo intero e stringa.

<?php
/* Creazione di un array vuoto */
$var = array();
$var = []; // PHP 5.4+

/* Creazione di un array non vuoto */
// 1. Chiavi di tipo stringa
$var1 = array('lu' => 'lunedì', 'ma' => 'martedì', 'me' => 'mercoledì', 'gi' => 'giovedì', 've' => 'venerdì','sa' => 'sabato', 'do' => 'domenica');
// 2. Chiavi di tipo intero (indici)
$var2 = array(1 => 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato', 'domenica');
// 3. Chiavi miste
$var3 = array('batman' => 'Bruce Wayne', 'superman' => 'Clark Kent', 1 => 'Paperino');
?>

PHP 5.4 e la sintassi abbreviata

A partire dalla versione 5.4 di PHP, è possibile ricorrere ad una sintassi abbreviata per creare un array, che consiste nel sostituire la chiamata al metodo array(...) con la semplice notazione […].

Manipolare un array

Una volta creato l’array è possibile accedere ai singoli elementi mediante la notazione array[key]: key può essere un indice (sempre definito) o una chiave (se è stata assegnata esplicitamente).

<?php
/* Accesso ad un array */
$var1 = array('lu' => 'lunedì', 'ma' => 'martedì', 'me' => 'mercoledì', 'gi' => 'giovedì', 've' => 'venerdì','sa' => 'sabato', 'do' => 'domenica');
$var2 = array('1' => 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato', 'domenica'); // PHP warning: $var2[0] non definito
$var1['lu']; // lunedì
$var2[1]; // lunedì
?>

Inserimento e modifica di un elemento

L’inserimento o la modifica avviene mediante una semplice assegnazione di un’espressione ad un elemento dell’array: array[key] = espressione; la chiave key (intero o stringa) può essere omessa: in tal caso viene aggiunto automaticamente un nuovo elemento in coda all’array e ad esso viene assegnato il valore dell’espressione.

<?php
/* Inserimento di un elemento */
$var = array();
$var[] = 45; // Aggiunge un elemento in coda all'array e assegna il valore 45
$var[0] = 23 // Modifica il valore dell'elemento precedente da 45 a 23
?>

Eliminazione di un elemento

Per eliminare un elemento dall’array è necessario invocare il metodo unset(elemento), passandogli l’elemento in questione.

Stampare un array

Il comando echo con un array si limita ad indicare che la variabile rappresenta un array: per stamparne il contenuto completo sono disponibili le funzioni print_r(array) e var_dump(array); per visualizzarlo in una pagina HTML è utile invocare la funzione all’interno di un tag pre, che preserva la leggibilità del contenuto dell’array.

Array multidimensionali

Qualsiasi elemento di un array può contenere un array a sua volta: se si seleziona un elemento di tipo array, è possibile accedere ai rispettivi elementi con la consueta notazione, ossia aggiungendo l’indice/chiave dell’elemento in questione racchiusa tra parentesi quadre: array[k1][k2]; tale notazione – letta da sinistra a destra – indica il percorso per arrivare all’elemento desiderato: ci si sposta nella posizione dell’array con chiave k1 e – nell’array in esso contenuto – si seleziona l’elemento con chiave k2.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...