- indexed
- associativo
- multidimensionale
Cominciamo con gli indexed...
Vado a memoria nel creare un array:
<?php $nani=array("Mammolo","Gongolo","Cucciolo","Pisolo","Brontolo","Dotto","Eolo"); echo "I nani di Biancaneve sono ".count($nani)."<br>"; echo "I loro nomi sono: "; for($n=0;$n<count($nani);$n++){ echo "$nani[$n],"; } ?>
I nani di Biancaneve sono 7 I loro nomi sono: Mammolo,Gongolo,Cucciolo,Pisolo,Brontolo,Dotto,Eolo,E ho usato la funzione count() e un ciclo for per contare gli elementi dell'array e navigarci in mezzo.
Ora la cosa più difficile: degli array che non hanno un indice numerico ma una variabile.
Per prima cosa, mi rivedrei i cicli foreach, che qui vanno senz'altro applicati.
Applico foreach a un array indicizzato.
<?php $matrice=array("uno","due","tre","quattro"); foreach($matrice as $value){ echo "$value<br>"; } ?>
uno due tre quattro
Se voglio far apparire anche l'indice:
<?php $matrice=array("uno","due","tre","quattro"); foreach($matrice as $x=>$value){ echo "$value<br>"; } ?>
uno due tre quattroCosì l'indice non appare, ma dal momento che ho eguagliato $matrice a $x=>$value posso far apparire anche l'indice:
<?php $matrice=array("uno","due","tre","quattro"); foreach($matrice as $x=>$value){ echo "$x $value<br>"; } ?>
0 uno 1 due 2 tre 3 quattroEcco: eguagliando $matrice a $x=>$value ho compreso in essa anche l'indice.
Stessa cosa posso fare per un array associativo.
Creo un array associativo (in questo tipo di array sarebbe il caso di far apparire anche l'indice)
$dei = array("Zeus"=>"Fulmine","Ares"=>"Guerra","Afrodite"=>"Amore","Dioniso"=>"Vino","Atena"=>"Sapienza");Ora voglio elencarli tutti, facendo apparire anche l'indice che in questo caso è il nome del dio.
<?php $dei = array("Zeus"=>"Fulmine","Ares"=>"Guerra","Afrodite"=>"Amore","Dioniso"=>"Vino","Atena"=>"Sapienza"); foreach($dei as $nome=>$competenza){ echo "$nome: $competenza<br>"; }
Zeus: Fulmine Ares: Guerra Afrodite: Amore Dioniso: Vino Atena: SapienzaEcco, appunto, come volevo.
Il for è applicabile solo agli array indicizzati perché hanno come indice un numero, mentre il foreach è applicabile sia agli array indicizzati che a quelli associativi.
Nessun commento:
Posta un commento