Skip to main content

4 Complexe arrays

Stel je wilt elke dat de temperatuur drie maal opmeten. Een keer 's morgens, één keer 's middags en één keer 's avonds.

Je kunt dit dan opslaan in een array met drie elementen.

$metingen = [ 7, 12, 11 ];

Stel dat je van meerdere dagen de metingen wilt opslaan. Dan kun je een array van een array maken. Je maakt dan een array waarin arrays zitten die dan elk drie elementen hebben, bijvoorbeeld:

$metingenWeek=[ [14,11,12], [ 6,11,11], [7,12,14], [9,14,13], [10,15,13] , [11,15,14 ], [13,16,14] ];

Je hebt nu array met metingen van 7 dagen en elke dag heb je een array met drie metingen. Zo kun je zien dat de eerste dag de warmste ochtend had en dat de laatste dag de warmste middag had.

print_r()

Met de PHP function print_r() kan je een array afdrukken.

Stel voor dat je de temperatuur van de eerste dag (element 0!) van de ochtend wil afdrukken, hoe doe je dat dan?

echo $metingenWeek[0][0];

Stel wel willen het volgende afdrukken:

Dag 1:
dagdeel 14
dagdeel 11
dagdeel 12

Dag 2:
dagdeel 6
dagdeel 11
dagdeel 11

etc., etc.

We gaan nu twee loops maken. Een loop voor de dagen en dan voor elke dagmaken een loop vooren dehebben dagdelen.

het

Latenvolgende weprogrammaatje beginnen met de buitenste loop:gemaakt.

$metingenWeek=[ [14,11,12], [ 6,11,11], [7,12,14], [9,14,13], [10,15,13] , [11,15,14 ], [13,16,14] ];

$dagNummer=0;

foreach($metingenWeek as $dag) {
echo "Dag ".$dagNummer."<br>";
}

Inecho " 's ochtends: ".$dag staat nu elke keer een array met drie elementen. Nu moeten we in de loop een nieuwe loop maken waarin we de temperatuur van de drie dagdelen afdrukken.

Dus in de loop zetten we een tweede loop, deze loop zit er als volgt uit.

foreach($dag as $dagDeel) {dagnummer[0]."<br>";
echo " dagdeel:'s middags : ".$dagDeeldagnummer[0]."<br>";
echo " 's avonds : ".$dagnummer[0]."<br>";
}


Helaas er zitten twee fouten in het programmaatje. Deze fouten moet je oplossen in de opdracht.

Opdracht 4a

Test de code uit het voorbeeld uit.

Probleem 1

Het dagnummer blijft op 0 staan. Los dit op en zorg ervoor dat de 7 dagen allemaal worden afgedrukt en dat het juisten dagnummer wordt afgedrukt. De dagnummers beginnen te tellen bij 1.

Pas de code aan zodat de dagnummers correct worden afgedrukt.

Probleem 2

Voor 's morgens, 's middags en 's avonds worden telkens dezelfde getallen afgedrukt. Dat klopt niet. In het voorbeeld staan voor dag 1 en dag 2 de juiste waarden afgedrukt. De programmeur heeft een foutje (of eigenlijk twee) gemaakt. Spoor de fout op en zorg ervoor dat de output klopt en dat de juisten getallen (temperaturen) worden afgedrukt.

Vergeet je code niet te testen!

Inleveren de aangepaste en geteste code in php02-04a-jouw-naam.php

Opdracht 4b

Bereid het programmaatje van opdracht 4b uit zodat de output als volgt wordt.

Dag 1:
dagdeel 14
dagdeel 11
dagdeel 12
hoogste waarde is 14

 Dag 2:
dagdeel 6
dagdeel 11
dagdeel 11
hoogste waarde is 11

 etc., etc.

Je drukt dus telkens per dag de hoogste temperatuur af. Dat doe je voor alle dagen.

Tip: kijk naar de PHP functie max() op https://www.w3schools.com/php/func_math_max.asp

Deze functie kan handig van pas komen. Je kan en mag de opdracht ook op een andere manier oplossen.

Gaat het jouw lukken? Succes!

--