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