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 ununica
istruzione compatta. Vediamone la sintassi:
$nome_array = array([parametri])
Tramite i comandi aventi la sintassi indice =>
valore, separati da virgole, si definiscono gli indici dellarray
e si assegna il valore al corrispondente elemento. Gli indici possono
essere di tipo stringa e di tipo numerico. Quando lindice
viene omesso, ne verrà automaticamente generato uno numerico a partire
dal valore zero. Se il vettore contiene già indici numerici lindice
generato sarà uguale al più grande indice fino ad allora assegnato
incrementato di uno.
Riprendiamo lesempio 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> </p>
</body>
</html>
Notiamo che loutput della nostra pagina non è affatto cambiato,
tuttavia abbiamo migliorato il codice sia sotto laspetto della
compattezza che della leggibilità (vantaggi niente affatto trascurabili).
Naturalmente è possibile utilizzare la funzione array() anche
nella definizione di vettori multi dimensionali, come mostra lesempio
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 lindice 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 lelemento di indice 8, a
cui sarà assegnato il valore numerico 3. Il successivo interessa
lelemento di indice 4, a cui viene assegnato il valore 3 che
andrà a sovrascriversi al precedente.
Attenzione allottavo 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 quellistante. Quindi, il valore 19 verrà assegnato allelemento
di indice 9 (il più grande indice finora incontrato è 8) e
non allelemento di indice 6, che rappresenterebbe la prima
locazione libera dellarray. Lultimo assegnamento sostituisce
il valore attuale dellelemento 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