numerieke arraywaarden optellen
Hallo,
Ik ben aan het proberen om numerieke waarden in een array bij elkaar op te tellen. Dit lukt mij echter niet, met name de decimalen achter de komma.
Om een voorbeeld te geven:
Dit gaf als resultaat: 36.
Dit met natuurlijk zijn: 37,5
Ik heb het binnen de functie ook al geprobeerd met de functie array_sum(); en array_count_values();
Ziet iemand wat ik fout doe?
Ik ben aan het proberen om numerieke waarden in een array bij elkaar op te tellen. Dit lukt mij echter niet, met name de decimalen achter de komma.
Om een voorbeeld te geven:
Code (php)
Dit gaf als resultaat: 36.
Dit met natuurlijk zijn: 37,5
Ik heb het binnen de functie ook al geprobeerd met de functie array_sum(); en array_count_values();
Ziet iemand wat ik fout doe?
Getallen zijn altijd met een punt en nooit met een komma.
Hmm ja ok
Is er een functie die de getallen kan omzetten? Want duizendtallen zijn ook gescheiden met een punt.. :)
Is er een functie die de getallen kan omzetten? Want duizendtallen zijn ook gescheiden met een punt.. :)
'Wout:
Hmm ja ok
Is er een functie die de getallen kan omzetten? Want duizendtallen zijn ook gescheiden met een punt.. :)
Is er een functie die de getallen kan omzetten? Want duizendtallen zijn ook gescheiden met een punt.. :)
Dat met duizendtallen doe je alléén als output op je scherm met een punt, niet in een array() of in een database.
Niet in PHP.
Kijk anders naar number_format()
Edit: Niet in PHP bedoel ik dus die komma's met getallen.. (Maar omdat SanThe op 't exacte zelfde moment moet posten werd mijn post dus onduidelijk)
p.s. Je moet dus ook geen dubbele aanhalingstekens gebruiken.
Edit 2:
Kijk anders naar number_format()
Edit: Niet in PHP bedoel ik dus die komma's met getallen.. (Maar omdat SanThe op 't exacte zelfde moment moet posten werd mijn post dus onduidelijk)
p.s. Je moet dus ook geen dubbele aanhalingstekens gebruiken.
Edit 2:
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
Wat is er mis met de functie array_sum() ?
Resultaat: 37.5
Resultaat: 37.5
Ik heb eens naar number-format gekeken en de output was nog hetzelfde..
Ik heb het nu zo:
@pgFrank:
Het zit em in de puntjes.. :)
De $key waarden moet ik eerst omzetten naar een 'PHP-getal'
Ik heb het nu zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function ArrayCount($array) {
$getal = 0;
foreach($array as $waarde=>$key) {
$getal2 = number_format($key,2,",",".");
$getal = $getal + $getal2;
}
return $getal;
}
?>
function ArrayCount($array) {
$getal = 0;
foreach($array as $waarde=>$key) {
$getal2 = number_format($key,2,",",".");
$getal = $getal + $getal2;
}
return $getal;
}
?>
@pgFrank:
Het zit em in de puntjes.. :)
De $key waarden moet ik eerst omzetten naar een 'PHP-getal'
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
Ik heb ook even $key en $waarde goed gezet.
Getest. Geeft als uitkomst: 10.037,50
Edit:
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
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$voorbeeld = Array("12.50","12.50","0","12.50","10000");
function ArrayCount($array)
{
$getal = 0;
foreach($array as $key => $waarde)
{
$getal = $getal + $waarde;
}
return $getal;
}
echo number_format(ArrayCount($voorbeeld), 2, ',', '.');
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$voorbeeld = Array("12.50","12.50","0","12.50","10000");
function ArrayCount($array)
{
$getal = 0;
foreach($array as $key => $waarde)
{
$getal = $getal + $waarde;
}
return $getal;
}
echo number_format(ArrayCount($voorbeeld), 2, ',', '.');
?>
Getest. Geeft als uitkomst: 10.037,50
Edit:
'pgFrank:
Wat is er mis met de functie array_sum() ?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
Ik heb em!
Ik heb nu gewoon eerst de waarden welke ik eerst in de array stopte vanuit de database, dmv een str_replace(); omgezet naar een 'PHP-getal'
de functie ziet er nu zo uit en werkt prima:
edit:
Bedankt!
Ik heb nu gewoon eerst de waarden welke ik eerst in de array stopte vanuit de database, dmv een str_replace(); omgezet naar een 'PHP-getal'
de functie ziet er nu zo uit en werkt prima:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
function ArrayCount($array) {
$getal = array_sum($array);
return number_format($getal,2,",",'.');
}
?>
function ArrayCount($array) {
$getal = array_sum($array);
return number_format($getal,2,",",'.');
}
?>
edit:
Bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
Zo werkt ie met 10.000 en 15,50.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$voorbeeld = Array("12,50","12,50","0","12,50","10.000");
function ArrayCount($array)
{
$getal = 0;
foreach($array as $key => $waarde)
{
$waarde = str_replace('.', '', $waarde);
$waarde = str_replace(',', '.', $waarde);
$getal = $getal + $waarde;
}
return $getal;
}
echo number_format(ArrayCount($voorbeeld), 2, ',', '.');
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
$voorbeeld = Array("12,50","12,50","0","12,50","10.000");
function ArrayCount($array)
{
$getal = 0;
foreach($array as $key => $waarde)
{
$waarde = str_replace('.', '', $waarde);
$waarde = str_replace(',', '.', $waarde);
$getal = $getal + $waarde;
}
return $getal;
}
echo number_format(ArrayCount($voorbeeld), 2, ',', '.');
?>




