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:
- PHP pakt het eerste element β
"blauw" - Zet dat in
$kleur - Voert de code uit (
echo) - Gaat naar het volgende element
- 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:
- Werk ik met een array?
- Wil ik alle elementen gebruiken?
- 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
foreachgebruik 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
foreachdoet - 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 π