Foreach bij arrays

Hier is een uitleg over foreach die aansluit op de rest en op het niveau van havo 4, zonder meteen de opdrachten weg te geven.


Waarom foreach?

Tot nu toe heb je arrays vaak zo gebruikt:

echo $kleuren[0];
echo $kleuren[1];
echo $kleuren[2];
echo $kleuren[3];

Dat werkt… maar:

  • het is veel typwerk
  • het wordt onoverzichtelijk bij grotere arrays
  • je moet zelf bijhouden hoeveel elementen er zijn

Daarom gebruiken we foreach.

Met foreach zeg je eigenlijk:

πŸ‘‰ β€œGa langs elk element in deze array en doe iets.”


De basis van foreach

De simpelste vorm:

foreach ($array as $waarde) {
    // code
}

Voorbeeld:

$kleuren = ["blauw", "geel", "groen", "rood"];

foreach ($kleuren as $kleur) {
    echo $kleur . "<br>";
}

Wat gebeurt hier?

Stap voor stap:

  1. PHP pakt het eerste element β†’ "blauw"
  2. Zet dat in $kleur
  3. Voert de code uit (echo)
  4. Gaat naar het volgende element
  5. Herhaalt dit totdat de array klaar is

Belangrijk om te snappen

$kleuren β†’ de hele array

$kleur β†’ één item tegelijk

De naam $kleur mag je zelf kiezen:

foreach ($kleuren as $x) {
    echo $x;
}

Maar kies altijd een naam die logisch is.


Waarom is dit handig?

Met foreach:

  • hoef je geen index ([0], [1], …) te gebruiken
  • maakt het niet uit hoe groot de array is
  • wordt je code korter en duidelijker

Werken met keys Γ©n values

Bij een associatieve array (en regelmatig ook bij gewone arrays) wil je vaak de naam Γ©n de waarde gebruiken.

Dan gebruik je deze vorm:

foreach ($array as $key => $value) {
    // code
}

Voorbeeld:

$start = [
    'blauw' => 0,
    'geel' => 10,
    'groen' => 20,
    'rood' => 30,
];

foreach ($start as $kleur => $positie) {
    echo $kleur . ": " . $positie . "<br>";
}

Wat gebeurt hier?

Bij elke stap krijg je:

  • $kleur β†’ de key (bijv. "blauw")
  • $positie β†’ de value (bijv. 0)

Dus:

Iteratie $kleur $positie
1 blauw 0
2 geel 10
3 groen 20
4 rood 30

Wanneer gebruik je welke vorm?

Alleen values nodig?

foreach ($array as $value)

Keys Γ©n values nodig?

foreach ($array as $key => $value)

Veelgemaakte fouten

1. Verwarren van $array en $value

Fout idee:

foreach ($kleuren as $kleuren)

Hier overschrijf je je array β†’ dat wil je niet.


2. Vergeten dat $value steeds verandert

Binnen de loop is $value telkens een andere waarde.


3. Geen {} gebruiken

Altijd:

foreach (...) {
    // code
}

foreach vs zelf tellen

Zonder foreach zou je dit doen:

for ($i = 0; $i < count($kleuren); $i++) {
    echo $kleuren[$i];
}

Dat is moeilijker dan:

foreach ($kleuren as $kleur) {
    echo $kleur;
}

πŸ‘‰ Daarom gebruiken we meestal foreach.


Denkstappen bij gebruik van foreach

Stel jezelf deze vragen:

  1. Werk ik met een array?
  2. Wil ik alle elementen gebruiken?
  3. Heb ik alleen values nodig of ook keys?

Koppeling met jullie opdrachten

Bij Vraag 2

In plaats van vier keer echo kun je jezelf afvragen:

πŸ‘‰ Kan dit ook met een lus?


Bij Vraag 4 en 5

Je krijgt een array terug van een functie.

πŸ‘‰ Hoe kun je alle onderdelen netjes tonen?


Bij complexere opdrachten (later)

Bijvoorbeeld:

  • spelers doorlopen
  • stappen verwerken
  • spelstatus tonen

πŸ‘‰ Daar wordt foreach heel belangrijk


Samenvatting

  • foreach gebruik je om door een array te lopen
  • Je hoeft geen indexen te gebruiken
  • Je kunt werken met:

    • alleen values
    • of keys Γ©n values
  • Het maakt je code korter en duidelijker

Mini-check voor jezelf

Als je dit begrijpt, kun je:

  • uitleggen wat foreach doet
  • een array volledig tonen zonder losse echo
  • werken met keys en values

Als je wilt, kan ik hierna ook:

  • een paar oefenopdrachten alleen voor foreach
  • of een visuele stap-voor-stap uitleg (zoals bij loops)

maken πŸ‘

Uitleg arrays Presentaties en video's