34 – 35 Array – foreach
Un array o vettore, è un contenitore di valori, tipo la variabile, ma con più di un valore. $nome = array(1, 2, 3, …);. Il primo elemento ha valore indice 0. Nel php, a differenza di altri linguaggi fortemente tipizzati, il contenuto di un array può essere omogeneo, cioè posso inserivi all’interno numeri e stringhe.
Vediamo in azione l’array con una forma semplice per scaglionare una lista di aliquote irpef
$aliquote = array(1500, 28000, 55000, 75000); echo "<ul>\n"; $indice=0; while ($indice<4) { echo "<li> $aliquote[$indice] </li>"; $indice++; } echo "</ul>";
In questo caso siamo legati a conoscere il numero di elementi dell’array, quindi se cambiassero, dovrei andare a ricalcolare il numero <4, quindi conviene usare la funzione count:
while ($indice<count($aliquote))
È possibile compattare maggiormente il codice agendo sul ciclo, togliendo l’incremento in fondo e le 2 parentesi graffe, che però andranno aggiunte nell’espressione del ciclo:
echo "<li> {$aliquote[$indice++]} </li>";
Possiamo compattare maggiormente usando il ciclo for, quindi:
$aliquote = array(1500, 28000, 55000, 75000); echo "<ul>\n"; for ($indice=0; $indice<count($aliquote); $indice++) echo "<li> {$aliquote[$indice]} </li>"; echo "</ul>";
La soluzione per eccellenza migliore, a livello di leggibilità e facilità per usare un ciclo sugli array sta nel comando foreach:
$aliquote = array(1500, 28000, 55000, 75000); echo "<ul>\n"; foreach($aliquote as $aliquo) echo "<li> $aliquo </li>"; echo "</ul>";
Il foreach è un comando creato apposta per gli array, con:
foreach ($aliquote as $aliquota)
Il comando dice: data una collezione di elementi ($aliquote), prendi ogni valore ed inseriscilo dentro un altro contenitore (as $aliquo) e creami un ciclo di istruzioni per ogni valore della collezione:
echo “<li> $aliquot </li>”;