Voor school moet ik het volgende doen:

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:

<?php
	$leeftijden[0]="12";
	$leeftijden[1]="34";
	$leeftijden[2]="22";
	$leeftijden[3]="3";
	$leeftijden[4]="18";
	$leeftijden[5]="67";
	$leeftijden[6]="2";
	$leeftijden[7]="15";
	$leeftijden[8]="33";
	$leeftijden[9]="55";
	$leeftijden[10]="11";
	for($teller=0;$teller<11;$teller++)
	{
	echo ($leeftijden[$teller]."<br>");
	}
?>


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! ;)
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.
<?php
	$leeftijden[0]="12";
	$leeftijden[1]="34";
	$leeftijden[2]="22";
	$leeftijden[3]="3";
	$leeftijden[4]="18";
	$leeftijden[5]="67";
	$leeftijden[6]="2";
	$leeftijden[7]="15";
	$leeftijden[8]="33";
	$leeftijden[9]="55";
	$leeftijden[10]="11";

	foreach ($leeftijden as $value)
		echo($value."<br>");
?>


Dit idee dus?
Wat doet het dan precies? Wat betekend die ''as''? En wat houd die $value in?
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.
$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.
Ja klopt, dat krijg ik inderdaad te zien!
En ik vind het voor me zelf wel handig om ".." te gebruiken, maar bedankt voor de tip!

Moet je iedere leeftijd bij langs lopen en nachecken of hij/zij 18 is?
Op deze manier eigenlijk?


    if ($leeftijden[0]>18)
    echo ("$leeftijden[0]");


@gamer13
Bij $leeftijden[0] is de value dus 12?
En bij $leeftijden[1] staat de value voor 34?
Ja, gewoon:
foreach($leeftijden as $value)
{
    if($value > 18)
    {
        echo $value;
    }
}
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...

Correct me if i'm wrong

Mijn code word dan dus:

<?php
	$leeftijden[0]="12";
	$leeftijden[1]="34";
	$leeftijden[2]="22";
	$leeftijden[3]="3";
	$leeftijden[4]="18";
	$leeftijden[5]="67";
	$leeftijden[6]="2";
	$leeftijden[7]="15";
	$leeftijden[8]="33";
	$leeftijden[9]="55";
	$leeftijden[10]="11";

foreach($leeftijden as $value)
	{
    if($value > 17)
    {
        echo $value."<br>";
    }
	}		
?>	


17 omdat hij anders ''18'' niet mee telt, en ."<br>" zodat hij niet alles op één regel gooit, maar op elke regel een getal.

Ik heb vandaag revolutionaire stappen gemaakt! Bedankt!
Gewoon >= gebruiken, dan telt ie 18 ook mee.
En ik weet niet of je dat al geleerd hebt, maar getallen hoeven niet omringd te worden door " ;) $leeftijden[0]=12; etc. dus.

Reageren