login  Naam:   Wachtwoord: 
Registreer je!
 Forum

multimension array waardes optellen

Offline JLT - 24/02/2006 11:29
Avatar van JLTPHP interesse Ik heb een multimension array met de volgende waardes ($titel,$aantal en $prijs). Nu wil ik een totaal bedrag afdrukken. Dus als er bv. 5 titels besteld zijn wil ik het totaal van deze 5 titels hebben.

Ik had al een functie gevonden op php.net maar misschien dat iemand mij deze kan uitleggen 

  1. <?php
  2. function cw_array_count($a) {
  3. if(!is_array($a)) return $a;
  4. foreach($a as $key=>$value)
  5. $totale += cw_array_count($value);
  6. return $totale;
  7. }


Dit is volgens mij een goede functie voor mijn probleem maar ik maak gebruik van een optel (for loop) functie. Zie mijn array
  1. $_SESSION['winkel'][$teller]['titel']
  2. $_SESSION['winkel'][$teller]['aantal']
  3. $_SESSION['winkel'][$teller]['prijs']


Hoe verwerk deze in de functie van php.net (zie bovenstaand script)?

Alweer alvast bedankt  
Jelte

8 antwoorden

Gesponsorde links
Offline kokx - 24/02/2006 11:49
Avatar van kokx Onbekend Die functie heb je niet nodig.
Zet dit voor je for loop.
  1. <?php
  2. $totaalprijs = 0;
  3. ?>

en dit in je for loop:
  1. <?php
  2. $totaalprijs = $totaalprijs + $_SESSION['winkel'][$teller]['prijs'];
  3. ?>

Dan werkt het beter volgensmij.
Offline Thomas - 24/02/2006 12:11
Avatar van Thomas Moderator
  1. function bereken_totaalbedrag()
  2. {
  3. $bedrag = 0;
  4.  
  5. foreach($_SESSION['winkel'] as $v)
  6. {
  7. $bedrag += $v['aantal'] * $v['prijs'];
  8. }
  9. return $bedrag;
  10. }


Zoiets?
Offline kokx - 24/02/2006 12:30
Avatar van kokx Onbekend @FangorN: Waar haal je die $v vandaan. Gebruik global of geeft het door als een argument.
Offline vinTage - 24/02/2006 12:33
Avatar van vinTage Nieuw lid
Citaat:
Waar haal je die $v vandaan.


hiervandaan
Citaat:
foreach($_SESSION['winkel'] as $v)


info..
Offline kokx - 24/02/2006 12:47
Avatar van kokx Onbekend maar daar zit toch die $teller bij?
Offline JLT - 24/02/2006 13:21 (laatste wijziging 24/02/2006 15:04)
Avatar van JLT PHP interesse Hey Kokx het is gelukt mede dankzij jouw manier! Ik heb als eerste de uitkomst van aantal*prijs in een nieuwe array gezet (dit had ik niet gedaan:?: ) En deze array staat nu achter de titels geprint. Dus als iemand 2x dezelfde titel heeft besteld wordt dit gewoon opgeteld.

Plus dat ik daarna d.m.v. jouw manier de nieuwe array bij elkaar optel en deze print naar het scherm.

Pff het was me een opgave maar m'n winkelwagen is af zonder gebruik te maken van een database, textfile etcc. enkel array's en sessions 

Nogmaals iedereen bedankt!
Jelte
Offline Thomas - 24/02/2006 15:28
Avatar van Thomas Moderator :)

Gebruik je nu de opzet
  1. "winkel" => array(
  2. "product_id" => array(
  3. "prijs" => <prijs_hier>,
  4. "aantal" => <aantal_hier>
  5. )
  6. )

?

Dat lijkt me stukken makkelijker dan je huidige opzet (met zo'n teller ertussen, die verder geen betekenis heeft voor het produkt)?

Maar als het werkt... 
Offline JLT - 24/02/2006 17:02 (laatste wijziging 26/02/2006 16:24)
Avatar van JLT PHP interesse Nee ik gebruik nog steeds m'n oude opzet. En ja het is een beetje dubbelop maar het werkt! Dus ik verander nix meer 


Grtz
jelte
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.225s