Tutto quello che bisogna sapere sulle array in PHP

In questo articolo analizzeremo uno strumento molto potente di PHP (e di tutti gli altri linguaggi): le array. Si tratta di variabili complesse che possono memorizzare un gruppo di valori sotto lo stesso singolo nome di variabile.

Ciascun valore in un array è chiamato elemento e un array può contenere un qualsiasi numero di elementi. Ogni elemento in un array ha una chiave, in modo che sia possibile accedere ai singoli elementi.

Si assegnano valori ad un array come indicato di seguito:

$nome_array['chiave'] = valore;

È possibile utilizzare come chiavi numeri o stringe. Le chiavi stringe devono essere racchiuse tra virgolette semplici, gli apici, come nell’esempio precedente, mentre le chiavi numero non ne hanno bisogno

$nome_array[0] = valore;

Se non s’inserisce una chiave nelle parentesi quadre, PHP associa ad ogni elemento una chiave numerica a partire da 0.

Abbiamo detto all’inizio che l’array può contenere diversi elementi sotto lo stesso nome variabile, il formato per compiere questa operazione è il seguente:

$nomearray = array(
'chiave1' => 'valore1',
'chiave2' => 'valore2',
'chiave3' => 'valore3'
);

In questa dichiarazione è possibile omettere le chiavi, in tal caso PHP assegna le chiavi numeriche

$nomearray = array(
'valore1', 'valore2', 'valore3'
);

PHP offre molte funzionalità per ottenere informazioni sulle array create, ad esempio è possibile conoscere il numero di elementi contenuti in un’array attraverso le funzioni count() e sizeof() , come indicato di seguito

$count = count($nomearray);
$size = sizeof($nomearray);

Dopo l’esecuzione delle dichiarazioni, $count e $size sono valorizzate con lo stesso intero che rappresenta il numero di elementi contenuti in $nomearray. Se l’array esiste ma non contiene elementi, count e sizeof restituiscono zero.

È possibile conoscere la chiave di un elemento utilizzando la funzione key(), come indicato di seguito:

$key = key($nomearray);

Dopo la dichiarazione, $key contiene la chiave numerica o la stringa dell’elemento su cui si trova il puntatore. Cos’è il puntatore? Immaginiamo un array come un elenco, con un puntatore che punta a un elemento dell’elenco. Il puntatore è fermo su elemento fino a quando viene spostato. La prima volta che si accede ad un array il puntatore è fermo sul primo elemento.

Per accedere ai valori dell’aray PHP offre le funzioni current(), che fa riferimento all’elemento attualmente posto sotto il puntatore, next() che sposta il puntatore avanti di un elemento e prev() che lo sposta indietro di un elemento. La funzione reset() riporta il puntatore al primo elemento mentre end() lo sposta fino all’ultima posizione.

Array multidimensionale

Il valore di una chiave può essere anche un array, in questo caso si parla di array multidimensionale. Si tratta di uno strumento molto importante quando dobbiamo gestire informazioni complesse.

$array = (
          'name' => 'Luca',
          'age'  => 39,
          'interests' => array(
                              'computer',
                              'running',
                              'health',
                              'food'),
          'city' => 'Rome'
         );

Per accedere al contenuto dell’array multidimensionale, considerando che non abbiamo definito le chiavi, possiamo procedere in questo modo:

echo $array['interests'][0]; // visualizza computer

Ordinare un array

Una delle possibilità più interessanti delle array consiste nella possibilità di ordinarle. Di base, gli elementi che compongono un’array sono ordinati secondo l’ordine con cui sono stati creati. PHP è in grado di cambiare quest’ordine, elencandoli per chiave o per valore.

Un array si può ordinare in ordine numerico per i valori numerici o in ordine alfabetico per le stringhe, in ordine crescente o discendente.

La funzione classica per l’ordinamento di un array è sort() utilizzata per le array con chiavi numeriche. La funzione riordina gli elementi per valore assegnandone nuove chiavi con la nuova numerazione.

L’ordinamento viene compiuto prima in base ai numeri, poi secondo i caratteri maiuscoli e infine secondo quelli minuscoli.

Per quanto riguarda le array con chiavi testuali si utilizza la funzione asort(). La funzione ordina gli elementi secondo l’alfabeto e mantiene le chiavi originali, senza assegnare nuove chiavi numeriche.

Sia sort che asort ordinano l’array in maniera crescente, per invertire l’ordine bisogna utilizzare rsort() per le array a chiave numerica e arsort() per le array a chiave stringa.

Tipo di array Ordine crescente Ordine descrescente
Chiave numerica sort($array) rsort($array)
Chiave stringa asort($array) arsort($array)

Veniamo alla pratica, supponiamo di avere un array con chiavi a stringa come la seguente:

$string_array = array('gender' => 'male',
                      'city'   => 'roma',
                      'nome'   => 'luca',
                      'age'    => '39'			          
                      );

Le chiavi saranno ordinate nell’ordine in cui sono state definite:

array(4) {
          ["gender"]=> string(4) "male" 
          ["city"]=> string(4) "roma" 
          ["nome"]=> string(4) "luca" 
          ["age"]=> string(2) "31" 
         }

Ma introducendo la dichiarazione asort($string_array) l’array sarà ordinato nel modo seguente :

array(4) {
          ["age"]=> string(2) "31" 
          ["nome"]=> string(4) "luca" 
          ["gender"]=> string(4) "male" 
          ["city"]=> string(4) "roma" 
         }

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *