foreach

Status
Niet open voor verdere reacties.

Biebiep

Nieuwe gebruiker
Lid geworden
10 mei 2014
Berichten
3
Hallo,

Via zelfstudie probeer ik het programmeren via PHP onder de knie te krijgen. Ik vond een oefening waarbij je een script moet schrijven dat wanneer je bv 5 ingeeft je als output dit zou moeten krijgen : 1+2+3+4+5=15.
So far, so good. Dit is mijn script :
PHP:
<?php
    $eindgetal = $_GET ["getal"];
    $som = 0;

    for ($begingetal = 1; $begingetal <= $eindgetal; $begingetal ++) { if ($begingetal == $eindgetal) {print "$begingetal =" . " ";}
                                                                                                       else {print "$begingetal +" . " ";}
                                                                                                       $som = $som + $begingetal;}
                                                                                                       print  "$som";
        
?>
Dan het tweede deel van de opdracht waar ik al uren mijn hoofd over breek : in elke lus zou je in een array de tussenberekeningen moeten bijhouden (dus : 1+2=3 1+2+3=6 1+2+3+4=10) en deze dan afdrukken gebruik makend van de foreach loop en de print functie.

Hopelijk is er iemand die mij een stapje verder kan helpen. Alvast bedankt!!
 
Laatst bewerkt door een moderator:
Ik zal je een klein stukje op weg helpen.

plaats onder "$eindgetal = $_GET"
de regel $subtotalen = array();

Vervolgens plaats je onder $som = $som +
de code $subtotalen[] = $som;

De variabale $subtotalen is na afloop een array met de tussenwaarden.
 
Dankjewel voor de hulp! Intussen ben ik al een stap verder geraakt :
PHP:
<?php
    $eindgetal = $_GET ["getal"];
    $subtotalen = array();
    $som = 0; 

    for ($begingetal = 1; $begingetal <= $eindgetal; $begingetal ++) {if ($begingetal == $eindgetal) {print "$begingetal = " . " ";}
                                                                                                      else {print "$begingetal +" . " ";}
                                                                                                      $som = $som + $begingetal;
                                                                                                      $subtotalen[] = $som;}
                                                                                                      print "$som";
                                                                    
                                                                                                      print "<p>";
                                                                                                      foreach ($subtotalen as $key => $value) {if ($key >= 1){print "<ul>";
                                                                                                                                                                                           print "<li>";                                                                      
                                                                                                                                                                                           print "$value";
                                                                                                                                                                                           print "</li>";
                                                                                                                                                                                           print "</ul>";}}
                                                                                                      print "</p>";
                                                                                                      ?>
Nu moet ik dus enkel nog als output 1+2=3, 1+2+3=6,.... krijgen in plaats van 3,6,10,...
Zou u mij ook hier verder op weg kunnen helpen aub?

Na al die uren werk voor zulk eenvoudige oefening (dat zou het toch moeten zijn veronderstel ik), kijk ik al uit naar de dag waarop het allemaal iets vlotter gaat! En nu maar hopen dat die dag geen tien jaar meer op zich laat wachten ;-)
 
Laatst bewerkt door een moderator:
Ik heb het inmiddels gevonden! :)
Nogmaals heel hartelijk dank voor uw hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan