Il ciclo foreach è il metodo più semplice, leggibile ed efficace per scorrere un array in PHP.
È progettato apposta per lavorare con collezioni di dati e riduce errori e complessità rispetto ai cicli tradizionali.

Cos’è il foreach

foreach è un ciclo che esegue un blocco di codice una volta per ogni elemento dell’array.

foreach ($array as $valore) {
   // codice
}

foreach con array indicizzati

$colori = ["rosso", "verde", "blu"];

foreach ($colori as $colore) {
  echo $colore . "<br>";
}

👉 Il ciclo assegna a $colore ogni valore dell’array, uno alla volta.

foreach con array associativi

$studente = [
  "nome" => "Marco",
  "eta" => 18,
  "classe" => "5A"
];

foreach ($studente as $chiave => $valore) {
  echo "$chiave: $valore <br>";
}

👉 In questo caso puoi leggere sia chiave che valore.

Pubblicità
Copertina: 50 Algoritmi per imparare PHP
📚 Consigliato per te

50 Algoritmi per imparare PHP

Una guida step by step per imparare PHP con esercizi svolti.

Vedi su Amazon

foreach con array multidimensionali

$classi = [
  ["Luca", "Anna"],
  ["Paolo", "Sara"]
];

foreach ($classi as $classe) {
  foreach ($classe as $studente) {
    echo $studente . " ";
  }
  echo "<br>";
}

👉 I foreach annidati servono per strutture complesse.

Modificare gli elementi con foreach

foreach ($numeri as &$n) {
  $n *= 2;
}

👉 Il simbolo & permette di modificare direttamente i valori dell’array.

Esempio pratico: calcolo media

$voti = [6, 7, 8, 9];
$somma = 0;

foreach ($voti as $voto) {
  $somma += $voto;
}

echo $somma / count($voti);

Esercizi

Pubblicità
  1. Crea un array $colori con i valori: “rosso”, “verde”, “blu”, “giallo”. Usa un ciclo foreach per stampare tutti i colori su righe separate.
  2. Crea un array associativo $canzoni con chiavi rappresentanti il titolo e valori rappresentanti l’artista. Usa un ciclo foreach per stampare titolo e artista.
  3. Crea un array $voti = [6, 8, 7, 10, 5]; Usa un ciclo foreach per stampare solo i voti maggiori o uguali a 7.
  4. Crea un array $numeri = [1, 2, 3, 4, 5, 6]; Usa un ciclo foreach per stampare solo i numeri dispari.
  5. Crea un array $numeri = [2, 4, 6, 8, 10]; Usa un ciclo foreach per calcolare e stampare la somma di tutti i numeri.