Werken met array's en getallen
Quote:
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)
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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>");
}
?>
$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! ;)
Gewijzigd op 01/01/1970 01:00:00 door Ane Lenstra
foreach door de array lopen. Als de waarde groter (zie operators) 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 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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dit idee dus?
Wat doet het dan precies? Wat betekend die ''as''? En wat houd die $value in?
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.
Het woord "as" zegt het eigelijk al, vrij 'vertaald':
Voor elke $leeftijden als $value 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?
@gamer13
Bij $leeftijden[0] is de value dus 12?
En bij $leeftijden[1] staat de value voor 34?
Gewijzigd op 01/01/1970 01:00:00 door Ane Lenstra
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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>";
}
}
?>
$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.
Douwe M schreef op 03.09.2008 18:43:
En ik weet niet of je dat al geleerd hebt, maar getallen hoeven niet omringd te worden door " ;) $leeftijden[0]=12; etc. dus.
Ik vind het voor me zelf wel handig om ".." te gebruiken, maar bedankt voor de tip!
Evert schreef op 03.09.2008 18:39:
Gewoon >= gebruiken, dan telt ie 18 ook mee.
Thanx! Is inderdaad nóg makkelijker!
Gewijzigd op 01/01/1970 01:00:00 door Ane Lenstra
Ane Marius de Jong schreef op 03.09.2008 18:47:
Ik vind het voor me zelf wel handig om ".." te gebruiken, maar bedankt voor de tip!
Douwe M schreef op 03.09.2008 18:43:
En ik weet niet of je dat al geleerd hebt, maar getallen hoeven niet omringd te worden door " ;) $leeftijden[0]=12; etc. dus.
Ik vind het voor me zelf wel handig om ".." te gebruiken, maar bedankt voor de tip!
Dat klopt dus niet, want dan zou het een string zijn, terwijl het geen string is, gewoon zonder quotes dus.
Handig misschien, maar beter is zonder. PHP is namelijk loose wat betreft de types, en zet de variabelen automatisch om in integers (onaangetaste getallen dus). Sneller en overzichtelijker (imo) is het dus om de "" weg te laten.
Gewijzigd op 01/01/1970 01:00:00 door Jan geen
Rik schreef op 03.09.2008 20:15:
@karl: Wat klopt er dan niet aan?
Het is geen string. Het is dus geen tekst.
Het is een nummertje. Het is dus int, float of weetikveelwatvooreentypewantdiehoefjeniettekennen.
Verder heeft Douwe dat ook al uitgelegd.
En schroom je niet om effe op php.net te kijken, want daar staat alles uitgelegd over types.
Manier 1:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$leeftijden[] = 12;
$leeftijden[] = 34;
$leeftijden[] = 22;
$leeftijden[] = 3;
$leeftijden[] = 18;
$leeftijden[] = 67;
$leeftijden[] = 2;
$leeftijden[] = 15;
$leeftijden[] = 33;
$leeftijden[] = 55;
$leeftijden[] = 11;
?>
$leeftijden[] = 12;
$leeftijden[] = 34;
$leeftijden[] = 22;
$leeftijden[] = 3;
$leeftijden[] = 18;
$leeftijden[] = 67;
$leeftijden[] = 2;
$leeftijden[] = 15;
$leeftijden[] = 33;
$leeftijden[] = 55;
$leeftijden[] = 11;
?>
Een andere manier, iets minder overzichtelijk, maar korter:
Als je warnings ook weergeeft krijg je bij jou manier 1 als het goed is een melding, je moet wel eerst $leeftijden initialiseren. Het zou dus zo horen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$leeftijden = array();
$leeftijden[] = 12;
$leeftijden[] = 34;
$leeftijden[] = 22;
$leeftijden[] = 3;
$leeftijden[] = 18;
$leeftijden[] = 67;
$leeftijden[] = 2;
$leeftijden[] = 15;
$leeftijden[] = 33;
$leeftijden[] = 55;
$leeftijden[] = 11;
?>
$leeftijden = array();
$leeftijden[] = 12;
$leeftijden[] = 34;
$leeftijden[] = 22;
$leeftijden[] = 3;
$leeftijden[] = 18;
$leeftijden[] = 67;
$leeftijden[] = 2;
$leeftijden[] = 15;
$leeftijden[] = 33;
$leeftijden[] = 55;
$leeftijden[] = 11;
?>
Code (php)
Dat is toch alles wat ie nodig heeft.
En nu wel zelf typen he ;). Anders leer je er niks van.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Zo is het net wat uitgebreider, extra punten? :-P
Gewijzigd op 01/01/1970 01:00:00 door Jelle Posthuma