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>”;