Array_sum erzeugt fehler: array_sum() expects parameter 1 to be array, float given in ..?
Hallo zusammen,
ich sitze jetzt schon seit 2 Tagen an diesem Problem und bekomme es einfach nicht gelöst.
Und zwar versuche ich den Wert eines Arrays in PHP zu summieren der Array sieht so aussieht:
Array
(
[0] => 4311.281896326
)
Array
(
[0] => 1690.9655824545
)
Array
(
[0] => 66.906156047461
)
Doch das einzige was erscheint ist folgender Fehler: array_sum() expects parameter 1 to be array, float given in ...
Hier ist der Code:
$statement = $pdo->prepare("SELECT SUM(cash) as cash, currencyid FROM cash WHERE user_id = :user_id AND status = :status GROUP BY currencyid");
$statement->execute(array('user_id' => $user["id"], 'status' => true));
while($result = $statement->fetch()){
$value = cashValue($result["currencyid"])*$result["cash"];
$sum = array();
$sum = $value;
echo array_sum($sum);
}
2 Antworten
Naja, die Fehlermeldung ist eigentlich recht eindeutig: array_sum() braucht als Argument ein Array, bekommt aber einen Float. Ich vermute es handelt sich bei $value um einen Float, daher wird aus $sum ebenfalls ein Float. Wenn meine Recherche korrekt ist kannst du dem Array mit
$sum[] = $value;
einen Wert hinzufügen.
Wie schaut es damit aus:
while($result = $statement->fetch()){
$value = cashValue($result["currencyid"])*$result["cash"];
$sum[] = $value;
}
echo array_sum($sum);
Perfekt danke dir das war die Lösung... Oh maaan und dafür hab ich jetzt 2 ganze Tage beraucht...
Das ganze Funkioniert mit Xampp aber sobald ich das auf dem Webserver habe erscheint wieder die gleiche Fehlermeldung weißt du woran das liegen könnte ?
Naja der Fehler steht eigentlich schon in deiner Frage, array_sum erwartet ein array aber du übergibst ihm float
Hab das ganze jetzt korrigiert:
Das Ergebnis: 4292.59404331825972.11519460436039.0753723129
Also leider immer noch nicht das ergebnis sondern nur den gesamten Array.