ePrometeusCorsoLinuxLinux
testi articoli
Testi Articoli  Download
Home | PHP | Espressioni | Comandi | Libreria | Form | Cookie | Database | Config | 
CorsoJava è ora Video! Free for all!
Clicca Qui!
Tutorial PHP
Espressioni
Operatori
Array
Variabili di variabili


<<< Array >>>

In PHP abbiamo gli array, ovvero sequenze di elementi accedibili per indice: l'indice è un numero intero. Gli array generici hanno anche il comportamenti degli array associativi, ovvero sono tabelle di elementi accedibili per chiave, che è una stringa. Gli indici, sia interi che stringa, si specificano utilizzando le parentesi quadre, che seguono il nome della variabili. Array ed array associativi sono di fatto lo stesso tipo di dato. Per creare un array è sufficiente assegnare un elemento utilizzando l'indice. Notare che l'array si "allarga" per contenere l'elemento di indice specificato. Per aggiungere in coda esiste una comoda sintassi: si assegna usando le parentesi quadre senza indice . Per esempio:

$a[0]="zero";
$a[1]="uno";
$a[]="due";
print "$a[0], $a[1], $a[2]";
=>zero, uno, due

Per creare un array, il modo più semplice è quindi quello di assegnare, uno per uno, gli elementi all'all'ultimo elemento (e così non si deve specificare un indice). Un altro modo è quello di utilizzare array, come segue:

# crea e stampa un array e un array associativo
$b = array("zero", "uno", "due");
$c = array("zero" => 0, "uno" => 1, "due" => 2);
print "$b[0], $b[1], $b[2]";
=> b: zero, uno, due
print "$c[zero], $c[uno], $c[due]";
=> c: 0, 1, 2
$d["x"] = 10; $d[] = 11; print "d: $d[0], $d[x]";
=> d: 11, 10

La primitiva array crea un array indicizzato; utilizzando => si crea un array associativo, che associa ad una data chiave il valore che lo segue. Notare che è possibile assegnare contemporaneamente ad un array sia elementi indicizzati per indice che per stringa.

Esiste una primitiva, chiamata list, che permette di effettuare assegnamenti multipli a variabili da un array. Funziona come segue:

$a = array("x", "y", "z");
list($b, $c, $d) = $a;
print "$b $c $d";
=> x y z

Questa funzione è particolarmente utile quando si devono estrarre informazioni da un database: il risultato di una query viene infatti ritornato come un array, e questa primitiva è utile per estrarre i risultati. Alla fine del prossimo paragrafo, che tratta i comando, sono mostrati i vari modi in cui è possibile scandire un array. Gli array possono essere riordinati in vari modi, a seconda che si voglia mantenere o meno l'associazione tra chiavi e valori.
Primitiva Ordinamento
sort() /rsort()) Riordina gli elementi di un array in ordine ascendente (discendente)
asort()/arsort() Riordina gli elementi in ordine ascendente (discendente) mantenendo l'associazione con gli indici
ksort()/krsort() Riordina gli elementi per chiave in ordine ascendente (discendente).

Esempio:

$a = array("3", "2", "1", "b" => "B", "c" =>"C", "a" =>"A");
sort($a); 
print "sort(\$a)\n";
while( list($k, $v) = each($a)) print "$k => $v\n";

$a = array("3", "2", "1", "b" => "B", "c" =>"C", "a" =>"A");
asort($a); 
print "asort(\$a)\n";
while( list($k, $v) = each($a)) print "$k => $v\n";

$a = array("3", "2", "1", "b" => "B", "c" =>"C", "a" =>"A");
ksort($a); 
print "ksort(\$a)\n";
while( list($k, $v) = each($a)) print "$k => $v\n";

Risultato:

sort($a)
0 => 1
1 => 2
2 => 3
3 => A
4 => B
5 => C
asort($a)
2 => 1
1 => 2
0 => 3
a => A
b => B
c => C
ksort($a)
0 => 3
1 => 2
2 => 1
a => A
b => B
c => C
ePrometeus s.r.l. - Web Software House & Open Source System Integrator
MILANO - SAN BENEDETTO DEL TRONTO(AP)
Contatti: info@eprometeus.com