Analizziamo adesso il funzionamento degli array.
Array
Un array può essere pensato come un trenino i cui vagoni possono
contenere qualsiasi cosa. Un array può infatti essere formato da
elementi di ciascuno dei tipi elementari. In PHP, gli array possono
essere di tipo sia hash tables che array indicizzati.
Una hash table è un array associativo mentre un array indicizzato
è un vettore. La differenza tra i due tipi consiste nella
modalità di accesso al dato elementare; mentre nel primo caso possiamo
accedere a tale dato associando ad ogni posizione dellarray
una chiave, nel secondo lindirizzamento avviene attraverso
un indice numerico che individua in modo univoco il dato di nostro
interesse. Entrambe le modalità di accesso possono convivere nello
stesso array. Riprendendo lesempio del trenino, per individuare
lo stesso vagone, possiamo usare il suo nome (per esempio Vagone
Ristorante) o la sua posizione nel convoglio (per esempio Carrozza
5). Facciamo un esempio utilizzando proprio larray treno:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<?php
/* creiamo un array rappresentante un treno
ogni elemento dell'array rappresenta una vagone;
per ogni vagone indichiamo il numero di passeggeri */
$treno[1]=25;
$treno[2]=15;
$treno[3]=20;
$treno[ristorante]=10;
$treno[locomotiva]="il solo macchinista";
/* mostriamo a video la composizione del nostro treno */?>
<p><?php echo("Nel
vagone 1 sono presenti $treno[1] passeggeri\n") ?></p>
<p><?php echo("Nel vagone 2 sono presenti $treno[2]
passeggeri\n") ?></p>
<p><?php echo("Nel vagone 3 sono presenti $treno[3]
passeggeri\n") ?></p>
<p><?php echo("Nel vagone ristorante sono presenti
$treno[ristorante]
passeggeri\n") ?></p>
<p><?php echo("Nella locomotiva è presente $treno[locomotiva]")
?></p>
<p> </p>
</body>
</html>
Il nostro array contiene cinque elementi di cui quattro sono interi
mentre lultimo è una stringa; tra gli elementi dellarray,
tre sono referenziati tramite indice numerico e due tramite chiave.
Nellutilizzare, quindi, questo tipo di dato strutturato, PHP
lascia al programmatore ampia libertà di scelta.
Listruzione
$array[]=nuovo elemento;
avrà leffetto di aggiungere un nuovo elemento in coda allarray
senza preoccuparsi della sua dimensione attuale.
PHP consente, altresì, di definire array multidimensionali, ovvero
array in cui ogni elemento è individuato da due o più indici. Si
faccia attenzione al fatto che non è possibile referenziare array
multidimensionali direttamente allinterno di stringhe. Occorre
sempre fare delle concatenazioni come visto nella scorsa lezione.
Vediamo un esempio di uso di array multidimensionali:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<?php
/* creiamo un array multidimensionale
in cui il primo indice rappresenta la carrozza,
mentre il secondo il posto al suo interno;
assegna ad ogni elemento il nome di chi
occupa quel posto */
$treno[1][1]="Aldo";
$treno[1][2]="Giovanni";
$treno[1][3]="Giacomo";
$treno[2][1]="Angelo";
$treno[2][2]="Francesco";
$treno[2][3]="Michele";
$treno['ristorante'][1]="Anna Falchi";
$treno['ristorante'][2]="Sabrina Ferilli";
$treno['ristorante'][3]="Alessia Marcuzzi";
// senza dubbio una carrozza molto ben frequentata
echo("Il primo vagone è occupato da ".$treno[1][1].",
".$treno[1][2]." e
".$treno[1][3]);
?>
<p><?php echo("Il
secondo vagone è occupato da ".$treno[2][1].",
".$treno[2][2]." e ".$treno[2][3]) ?></p>
<p><?php echo("Il vagone ristorante è occupato da
".$treno['ristorante'][1].",
".$treno['ristorante'][2]." e ".$treno['ristorante'][3])
?></p>
<p> </p>
</body>
</html>
PHP fornisce numerose funzioni per la gestione e la manipolazione
degli array. Passare in rassegna le più importanti, sarà lo scopo
della prossima lezione.
Torna all'indice Generale del corso di Corso di PHP di Software Planet