Link sponsorizzati

Gli Array

Al termine della scorsa lezione abbiamo accennato agli array (o vettori), vediamo ora di capire insieme cosa sono e come funzionano.
Una array è una specie di "super-variabile" contentente una pluralità di valori invece di uno solo. Ma facciamo subito un paio esempi che valgono più di tante parole.

Poniamo di voler scrivere una sorta di lista di amici utilizzando, appunto, un array.

(L'articolo continua più sotto...)

Uno dei modi per scrivere il nostro array è il seguente:

<?php
$amici = array("Luca", "Jacopo", "Felice", "Peppo");
?>
In sostanza abbiamo dato un nome al nostro array ed abbiamo inserito i vari elementi tra parentesi (dopo l'indicazione di "array") divisi da una virgola.
PHP associa automaticamente a ciascuno dei valori che abbiamo elencato un indice numerico, a partire da 0. Quindi, in questo caso, "Luca" assumerà l'indice 0, "Jacopo" l'indice 1, e così via.

Il risultato sarebbe stato il medesimo se avessimo scritto il nostro array in questa maniera:

<?php
$amici[0] = "Luca";
$amici[1] = "Jacopo";
$amici[2] = "Felice";
$amici[3] = "Peppo";
?>
Come è evidente nel primo modo l'indice veniva assegnato in automatico da PHP, mentre in questo secondo caso lo abbiamo esplicitato noi.

Nel nostro esempio abbiamo utlizzato un array con indice numerico, tuttavia è opportuno ricordare che l'indice può essere anche di tipo stringa. Facciamo un esempio di un array contenente i dati di un ipotetico cliente in cui, appunto, l'indice degli elemento del nostro array è una stringa:

<?php
$cliente["azienda"] = "Microsoft";
$cliente["nome"] = "Bill";
$cliente["cognome"] = "Gates";
?>
Come avrete notato quando l'indice è di tipo stringa si usano gli apici anche all'interno della parentesi quadra (la regola è sempre la stessa: per i numeri non servono le virgolette, per le stringhe sì!).

Vediamo ora come lavorare con gli array.
Per riferirsi ad un singolo elemento dell'array si indica il nome dell'array seguito dall'indice contenuto fra parentesi quadre:

echo "Ciao " . $amici[1]; //output "Ciao Jacopo"
Volendo è anche possibile alterare l'array inizialmente definita sostituendo elementi o aggiungendone di nuovi.

Per aggiungere un nuovo elemento alla nostra array (elemento che verrà posizionato in fondo agli altri già presenti) si usa:

$amici[] = "Daniele"; //questa linea aggiunge l'elemento "Daniele" al nostro array
Nello specifico del nostro esempio, questo nuovo elemento verrà posizionato in coda al nostro array ed assumerà l'indice 4. PHP, infatti, quando si trova di fronte un'istruzione di quel tipo (paretesi quadre vuote), va a cercare l'elemento dell'array con l'indice più alto e lo aumenta di 1 per creare quello nuovo.

Qualora volessimo sostituire uno degli elementi già presenti useremo il nome del nostro array accompagnato dall'indice dell'elemento da sostituire tra le parentesi quadre. Poniamo ad esempio di voler sostituire l'elemento "Felice" con un nuovo elemento "Marcello". Ecco come fare:

$amici[2] = "Marcello"; //questa linea sostitisce l'elemento "Felice" con "Marcello"
Lavorare con Array di grandi dimensioni

Nel nostro esempio abbiamo usato un array di dimensioni molto ridotte, ma in realtà capità spesso di avere di fronte array molto lunghe e può essere utile conscere il numero degli elementi che la compongono, in questo caso soccorre la funzione count() che useremo così:

$max_num = count($amici);
Questa funzione è molto utile soprattutto se volesimo stampare a video tutti gli elementi contenuti in un array molto lunga senza doverlo fare manualmente. Vediamo come fare usando la funzione count() ed il ciclo for.
<?php
$amici = array("Luca", "Jacopo", "Felice", "Peppo", "Gino", "Mario", "Antonio", "Roberto", "Massimo", "Giuseppe", "Matteo", "Silvio", "Michele", "Franco", "Guido", "Piero");
$max_num = count($amici);
for ($i=0; $i<=$max_num; $i++)
{
  echo $amici[$i] . "<br/>";
}
?>
Il ciclo foreach

Come abbiamo già accenato nella lezione sui cicli, le array prevedono un tipo speciale di ciclo: foreach.
Riprendiamo la array amici dei precedenti esempi e costruiamo un ciclo usando, appunto, foreach:

<?php
$amici = array("Luca", "Jacopo", "Felice", "Peppo", "Gino", "Mario", "Antonio", "Roberto", "Massimo", "Giuseppe", "Matteo", "Silvio", "Michele", "Franco", "Guido", "Piero");
foreach($amici as $amico)
{
  echo $amico . "<br/>";
}
?>
Il grosso vantaggio di foreach rispetto a for è che non serve contare il numero degli elementi presenti in quanto PHP lo fa automaticamente. Per il resto il funzionamento è analogo a quello visto negli altri tipi di ciclo.

Guida PHP
E-Learning
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 49 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 39 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Link sponsorizzati