Uit een klein onderzoek naar de leeftijden van reizigers zijn de volgende waarden naar voren gekomen:
12, 34, 22, 3, 18, 67, 2, 15, 33, 55, 11
a. Maak een .php programma waarin je eerst deze waarden in een array met de naam $leeftijden zet (8 punten)
b. Breid het programma daarna uit met een mogelijkheid om het aantal volwassenen (leeftijd groter of gelijk aan 18) te bepalen met behulp van: de array, een for-each statement en een if-statement (12 punten)
Ik heb inmiddels het volgende en als ik mij niet vergis is dit genoeg voor opdracht a:
Nu moet ik dus opdracht b nog, maar daar zit ik echt helemaal vast. Hoe moet ik dat aanpakken?
Ps: als je helpt graag uitleggen wat de code doet, dan leer ik er van! ;)
?
Onbekende gebruiker
03-09-2008 17:44
Met [php]foreach[/php] door de array lopen. Als de waarde groter (zie [php]operators[/php]) is dan 18 in een nieuwe array (zie dit om wat te doen met de key) stoppen en klaar ben je.
Verder gaan we niet code voor je schrijven, dit moet je zelf doen, daar leer je van. Ik denk dat je nu al een heel end op weg bent.
Natuurlijk willen we wel controleren.
@Rik: Dat klopt niet helemaal wat jij zegt volgens mij...
met een foreach($array as $value) kan je over een array "lopen" en op die manier iets met de waarde($value) doen, vrij eenvoudig. Als je nu een teller bij houdt en die ophoogt wanneer de leeftijd ($value) groter is dan 18.
Dat betekend dat $leeftijden wordt doorlopen, met de waarde van een array-key in de variabele $value. Met jouw script zul je als het goed is het volgende te zien krijgen:
12
34
22
3
18
67
2
15
33
55
11
En ik weet niet of je dat al geleerd hebt, maar getallen hoeven niet omringd te worden door " ;) $leeftijden[0]=12; etc. dus.
?
Onbekende gebruiker
03-09-2008 18:18
$value is een fictieve variabel die aangemaakt wordt tijdens de foreach loop. Deze krijgt dan 'voor-elke' $leeftijden de waarde als waarde.
Het woord "as" zegt het eigelijk al, vrij 'vertaald':
Voor elke $leeftijden als $value zien.
Aaaah op die manier!
Je hoeft dus niet de hele bende langs te lopen, maar die foreach zorgt er voor dat hij dat bij elke waarde toepast...
En IF zegt dat hij hem alleen hoeft te ''echoën'' op het moment dat het ''value'' beneden 18 ligt...