Corso di PHP

Gli array II

 

PHP fornisce modi alternativi per la creazione di array si elementi. A tale scopo è possibile utilizzare la funzione array(); analizziamola in dettaglio.

array()
La unzione array viene utilizzata per creare un array; essa, in realtà, non è una vera e propria funzione, ma può essere pensata come un costrutto del linguaggio per creare array per mezzo di un’unica istruzione compatta. Vediamone la sintassi:

$nome_array = array([parametri])

Tramite i comandi aventi la sintassi “indice => valore”, separati da virgole, si definiscono gli indici dell’array e si assegna il valore al corrispondente elemento. Gli indici possono essere di tipo stringa e di tipo numerico. Quando l’indice viene omesso, ne verrà automaticamente generato uno numerico a partire dal valore zero. Se il vettore contiene già indici numerici l’indice generato sarà uguale al più grande indice fino ad allora assegnato incrementato di uno.

Riprendiamo l’esempio del treno, utilizzando questa volta la funzione array:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<?php
      $treno=array(1=>25,
                   2=>15,
                   3=>20,
                   ristorante=>10,
                   locomotiva=>"il solo macchinista");
<p><?php echo("Nel vagone 1 sono presenti $treno[1] passegeri\n") ?></p>
<p><?php echo("Nel vagone 2 sono presenti $treno[2] passegeri\n") ?></p>
<p><?php echo("Nel vagone 3 sono presenti $treno[3] passegeri\n") ?></p>
<p><?php echo("Nel vagone ristorante sono presenti $treno[ristorante]
passegeri\n") ?></p>

<p><?php echo("Nella locomotiva è presente $treno[locomotiva]") ?></p>

<p>&nbsp; </p>
</body>
</html>


Notiamo che l’output della nostra pagina non è affatto cambiato, tuttavia abbiamo migliorato il codice sia sotto l’aspetto della compattezza che della leggibilità (vantaggi niente affatto trascurabili).
Naturalmente è possibile utilizzare la funzione array() anche nella definizione di vettori multi dimensionali, come mostra l’esempio successivo:

$treno = array(1 => array(1 => "Aldo", 2 => "Giovanni", 3 => "Giacomo"),
             2 => array(1=> "Angelo", 2 => "Francesco", 3 => "Michele"),
             ristorante => array(1 => "Raul Bova", 2 => "George Clooney",
                  3 => "Richard Gere"));

      // per la par condicio nei confronti delle ragazze

Prima di concludere la trattazione di questo costrutto analizziamo un altro esempio; ci sarà utili per comprendere meglio la procedura automatica di generazione degli indici. Supponiamo di definire un array nel seguente modo:

$array = array( 1, 1, 1, 1, 1, 8=>3, 4=>2, 19, 3=>13);

Abbiamo creato un array, chiamandolo $array. Osserviamo i primi cinque assegnamenti: notiamo che l’indice non figura; ne consegue, che verranno automaticamente creati gli elementi di indice 0, 1, 2, 3 e 4, e ad essi verrà assegnato il valore numerico 1. Il sesto assegnamento riguarda l’elemento di indice 8, a cui sarà assegnato il valore numerico 3. Il successivo interessa l’elemento di indice 4, a cui viene assegnato il valore 3 che andrà a sovrascriversi al precedente.

Attenzione all’ottavo assegnamento. Come sappiamo, qualora in un assegnamento non figuri un indice, questo verrà generato automaticamente incrementando di 1 il più grande indice numerico incontrato fino a quell’istante. Quindi, il valore 19 verrà assegnato all’elemento di indice 9 (il più grande indice finora incontrato è 8) e non all’elemento di indice 6, che rappresenterebbe la prima locazione libera dell’array. L’ultimo assegnamento sostituisce il valore attuale dell’elemento di indice 3 con il valore 13.

Nella prossima lezione continueremo nel nostro excursus delle funzioni essenziali degli array.

 

Torna all'indice Generale del corso di Corso di PHP di Software Planet