Werken met array's en getallen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Ane Lenstra

Ane Lenstra

03/09/2008 17:38:00
Quote Anchor link
Voor school moet ik het volgende doen:

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)


Ik heb inmiddels het volgende en als ik mij niet vergis is dit genoeg voor opdracht a:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>");
    }

?>


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
 
PHP hulp

PHP hulp

19/04/2024 01:16:23
 

03/09/2008 17:44:00
Quote Anchor link
Met 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...
Gewijzigd op 01/01/1970 01:00:00 door
 
Jan geen

Jan geen

03/09/2008 17:45:00
Quote Anchor link
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.
 
Ane Lenstra

Ane Lenstra

03/09/2008 18:05:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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?
 
Douwe

Douwe

03/09/2008 18:09:00
Quote Anchor link
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.
 
GaMer B

GaMer B

03/09/2008 18:18:00
Quote Anchor link
$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.
 
Ane Lenstra

Ane Lenstra

03/09/2008 18:26:00
Quote Anchor link
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
    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?
Gewijzigd op 01/01/1970 01:00:00 door Ane Lenstra
 
GaMer B

GaMer B

03/09/2008 18:29:00
Quote Anchor link
Ja, gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
foreach($leeftijden as $value)
{
    if($value > 18)
    {
        echo $value;
    }
}
 
Ane Lenstra

Ane Lenstra

03/09/2008 18:37:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
    }
    }
        
?>
    


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!
 
--

--

03/09/2008 18:39:00
Quote Anchor link
Gewoon >= gebruiken, dan telt ie 18 ook mee.
 
Douwe

Douwe

03/09/2008 18:43:00
Quote Anchor link
En ik weet niet of je dat al geleerd hebt, maar getallen hoeven niet omringd te worden door " ;) $leeftijden[0]=12; etc. dus.
 
Ane Lenstra

Ane Lenstra

03/09/2008 18:47:00
Quote Anchor link
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
 

03/09/2008 18:48:00
Quote Anchor link
Ane Marius de Jong schreef op 03.09.2008 18:47:
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.
Gewijzigd op 01/01/1970 01:00:00 door
 
Douwe

Douwe

03/09/2008 18:50:00
Quote Anchor link
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.
 
Jan geen

Jan geen

03/09/2008 20:15:00
Quote Anchor link
@karl: Wat klopt er dan niet aan?
Gewijzigd op 01/01/1970 01:00:00 door Jan geen
 

03/09/2008 20:18:00
Quote Anchor link
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.
 
Eddy E

Eddy E

04/09/2008 08:13:00
Quote Anchor link
Ook je $leeftijd kan anders, makkelijker:

Manier 1:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


Een andere manier, iets minder overzichtelijk, maar korter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$leeftijden
= array(12, 34, 22, 3, 18, 67, 2, 15, 33, 55, 11);
?>
 
Robert Deiman

Robert Deiman

04/09/2008 09:06:00
Quote Anchor link
@Eddy

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>
 
Jelle Posthuma

Jelle Posthuma

04/09/2008 09:39:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$leeftijden
= array(12, 34, 22, 3, 18, 67, 2, 15, 33, 55, 11);
foreach($leeftijden as $leeftijd){
    if($leeftijd > 17){
        echo $leeftijd.' - Volwassen';
    }
else{
        echo $leeftijd.' - Minderjarig';
    }
}

?>

Dat is toch alles wat ie nodig heeft.
En nu wel zelf typen he ;). Anders leer je er niks van.
 
Jan geen

Jan geen

04/09/2008 09:48:00
Quote Anchor link
O almachtige karl die alles van types weet waar heb ik het over strings? Er wordt alleen een aantal gevraagd en niet de namen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$leeftijden
= array(12, 34, 22, 3, 18, 67, 2, 15, 33, 55, 11);
$i = 0;
foreach($leeftijden as $leeftijd) {
    if($leeftijd >= 18) $i++;
}

echo "Aantal volwassenen: " . $i;
Gewijzigd op 01/01/1970 01:00:00 door Jan geen
 
Jelle Posthuma

Jelle Posthuma

04/09/2008 09:52:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$leeftijden
= array(12, 34, 22, 3, 18, 67, 2, 15, 33, 55, 11);
$volwassen = 0;
$minderjarig = 0;
foreach($leeftijden as $leeftijd) {
    if($leeftijd > 17) $volwassen++;
    else $minderjarig ++;
}

echo "Aantal volwassenen: " . $volwassen.'<br/>';
echo "Aantal minderjarigen: " . $minderjarig;
?>


Zo is het net wat uitgebreider, extra punten? :-P
Gewijzigd op 01/01/1970 01:00:00 door Jelle Posthuma
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.