Corso di PHP

Gli Array I

 

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 dell’array una chiave, nel secondo l’indirizzamento 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 l’esempio 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 l’array 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>&nbsp; </p>
</body>
</html>


Il nostro array contiene cinque elementi di cui quattro sono interi mentre l’ultimo è una stringa; tra gli elementi dell’array, tre  sono referenziati tramite indice numerico e due tramite chiave. Nell’utilizzare, quindi, questo tipo di dato strutturato, PHP lascia al programmatore ampia libertà di scelta.

L’istruzione

$array[]=”nuovo elemento”;

avrà l’effetto di aggiungere un nuovo elemento in coda all’array 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 all’interno 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>&nbsp;</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