2 Mar 2011 0 commenti
La tipologia di variabili più ostica da utilizzare sono sicurametne gli array. Un Array è un insieme di variabili (tecnicamente un vettore di variabili).
Facciamo un esempio e chiariremo il concetto. Immagginiamo di avere una variabile $nomi all'interno dalla quale vogliamo inserire i seguenti dati: marco, luca, paolo.
Avremo, quindi, un'unica variabile ($nomi) che contiene più dati. Vediamo come si procede:
<?php $nomi = array('marco', 'luca', 'paolo'); ?>
I singoli dati che compongono un array sono detti elementi.
Errore tipico che si commette in questa fase è di scrivere:
<?php $nomi = array('marco', 'luca', 'paolo'); echo $nomi; ?>
Vi comparirà a video la parola 'Array'. Infatti vi ricordo che il costrutto echo esegue la stampa a video di una stringa o di un numero, non un array!
Per stampare la struttura di un array si utilizza il costrutto print_r():
<?php $nomi = array('marco', 'luca', 'paolo'); print_r($nomi); ?>
Tale costrutto è utilissimo in caso di controllo dei propri script.
La variabile $nomi è un array composto da 3 elementi. Ognuno di essi è contraddistinto da una chiave a partire da 0 (zero). Quindi, $nomi[0] è il primo elemento dell'array $nomi; $nomi[1] è il secondo e così via. Per estrapolare uno degli elementi contenuti in un array si scriverà, pertanto, in questo modo:
<?php $nomi = array('marco', 'luca', 'paolo'); echo $nomi[0]; ?>
Un altro errore comune in questa fase è di scrivere $nomi[1] per selezionare il primo elemento dell'array: è errato in quanto le chiavi partono da 0.
Poniamo il caso che vogliamo aggiungere un elemento ad un array già esistente; ad esempio vogliamo aggiunte 'franco' all'array $nomi. Ecco come si procede:
<?php $nomi = array('marco', 'luca', 'paolo'); $nomi[] = 'franco'; echo $nomi[3]; ?>
In questo caso la stringa "franco" aggiunta all'array $nomi assumerà come chiave quella successiva a all'ultima presente: "marco" ha chiave 0, "luca" ha chiave 1, "paolo" ha chiave 2, quindi "franco", che è stato aggiunto all'array $nomi, avrà chiave 3.
Se volessimo aggiungere "franco" assegnandogli anche la chiave scriveremo così:
<?php $nomi = array('marco', 'luca', 'paolo'); $nomi[6] = 'franco'; echo $nomi[6]; ?>
Ricordatevi, inoltre, che se una stessa variabile viene valorizzata per la seconda volta il secondo contenuto sostituisce il primo. Nell'esempio che segue "paolo" sarà sostituito da "franco":
<?php $nomi = array('marco', 'luca', 'paolo'); $nomi[2] = 'franco'; echo $nomi[2]; ?>
Oltre alle chiavi numeriche agli elementi di un array è possibile attribuire chiavi letterali. In questo caso ricordatevi di mettere gli apici al valore letterale della chiave. Ad esempio:
<?php $nomi = array('marco', 'luca', 'paolo'); $nomi['soprannome'] = 'franco'; echo $nomi['soprannome']; ?>
Un elemento di un array può essere a sua volta un array: in questi casi si parla di array multidimensionali. La loro manipolazione potrà risultardi complicata inizialmente ma col tempo acquisirete dimestichezza con il suo uso.
A questo punto vediamo alcune funzioni che prendono come argomento un array. In particolare esamineremo la funzione count() e la funzione implode().
La funzione count() prendendo come parametro un array ci darà come return il numero di elementi che compongono quell'array. Mettendo il risultato della funzione count() all'interno di una variabile lo stamperemo a video con il costrutto echo.
<?php $nomi = array('marco', 'luca', 'paolo'); // inizializziamo il nostro array $contare = count($nomi); // calcoliamo il numero di elementi echo $contare; // stampiamo a video il numero di elementi ?>
La funzione implode() serve per trasformare un array in una stringa; essa necessita di due parametri: il primo è la stringa semparatrice, mentre il secondo è l'array da trasformare. Poniamo il caso che a partire dall'array $nomi volessimo creare una stringa di questo tipo 'marco-luca-paolo': in pratica vogliamo creare una stringa contenente tutti gli elementi dell'array separati gli uni dagli altri dal carattere '-' (il trattino). Avremo uno script di questo tipo:
<?php $nomi = array('marco', 'luca', 'paolo'); // inizializziamo il nostro array $stringa_nomi = implode('-', $nomi); // lo trasformiamo in una stringa con carattere separatore - echo $stringa_nomi; // stampiamo a video la stringa ottenuta ?>
Olimpio Romanella
Sono un appassionato di Web Developing con un particolare debole per php. Mi dedico principalmente dello sviluppo back-end ed in particolare programmazione lato server con php, sviluppo di database relazionali MySql e progettazione di CMS di piccole e medie dimensioni.
Mi avvalgo del framework javascript Jquery, utilizzando molti dei suoi plugin e nei dei miei progetti utilizzo spesso il framework MVC Codeigniter.