Sorry, een geheel simpele vraag.

Ik heb nu een array prijzen[] die strings als "4,95" "5,95" etc bevat.

Ik wel deze optellen met 2 decimalen.

Ik kon niks vinden bij de MATH documentatie op phpnet :(

<?php
for ($x = 0; $x < count($prijzen); $x++)
{
$totaal = $totaal + $prijzen[$x];
}
?>

Ik krijg nu dit:

Prijs:
product 1 - €4,95
product 2 - €4,95

Totaal: €8
Strings optellen?
Waarom stop je er geen echte floats in?

Mja:
<?php
$totaal = (float) array_sum( $prijzen );
?>

Met gewone floats is de cast niet nodig denk ik, maar weet niet hoe PHP anders reageerd :)

Edit: Zonder werkt dus ook.
Kun je maar zien wat een simpel taaltje dat PHP is :X
$totaal = (float) array_sum($prijzen);

Ik krijg nu hetzelfde. Wel minder code ;)

Hoe krijg ik nu de decimalen?
Dit geeft decimalen ...
Heb het net getest met <?php
$prijzen = array( "4.95", "5.25", "1.10", "6.75" );
echo array_sum( $prijzen );
?>
Sorry, mijn getallen hebben komma's instead of punten voor het aangeven van decimalen.
Nick schreef op 10.04.2006 19:01
$totaal = (float) array_sum($prijzen);

Ik krijg nu hetzelfde. Wel minder code ;)

Hoe krijg ik nu de decimalen?

Met deze funcie moet dat volgens mij wel lukken: (klik)
Ik zie geen werking :(
Jip, zou jij jouw gedachten kunnen schrijven als PHP code?
Het komt er op neer dat die functie ook punten gebruikt.
Een , gaat niet werken.

<?php
# Loopje door array
foreach( $prijzen as $prijs )
$prijs = str_replace( ',', '.', $prijs );

# Optellen en formatteren
$totaal = number_format( (float) array_sum( $prijzen ), 2, ',', '.' );
?>

Succes ;)

Edit: Haakje :+
Hey leuk, 2 decimalen! Welnu...

product 1 - 4,95
product 2 - 4,95
totaal: 8,00

Helaas wordt het geheel niet op geteld!
Bedankt allemaal, ik heb zelf iets veranderd! Het werkt nu perfect.

Hartstikke bedankt in ieder geval
<?php
# Arraytje
$prijzen = array( (float) str_replace( ',', '.', "4,95" ), 1.00 );

# Optellen en formatteren
echo number_format( array_sum( $prijzen ), 2, ',', '.' );
?>

Dit is mijn testscriptje en dat werkt toch echt wel ...

Reageren