Hallo Community !
Mit dem Befehl AC_GetLoggedValues bekomme ich alle Werte eines Monats.
Ich möchte diese Werte summieren und in eine Variable schreiben.
Mit array_sum funktioniert es nicht da bekomme ich eine falsche Summe.
$Array = AC_GetLoggedValues(51787 /*[Archiv]*/, 50779 /*[Photovoltaik\Statistik\Tagesenergie Gesamt]*/, mktime(0, 0, 0, 1, 1, 2018), mktime(23, 59, 59, 1, 31, 2018), 0);
foreach($Array as $wert) {
echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Value'] . PHP_EOL;
}
$Total = array_sum($wert);
echo "<br /><br />Summe = $Total <br />";
Hat jemand eine Idee
Fonzo
19. September 2018 um 08:37
2
KahmannFrilla:
Mit array_sum funktioniert es nicht da bekomme ich eine falsche Summe.
$Array = AC_GetLoggedValues(51787 /*[Archiv]*/, 50779 /*[Photovoltaik\Statistik\Tagesenergie Gesamt]*/, mktime(0, 0, 0, 1, 1, 2018), mktime(23, 59, 59, 1, 31, 2018), 0);
foreach($Array as $wert) {
echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Value'] . PHP_EOL;
}
$Total = array_sum($wert);
echo "<br /><br />Summe = $Total <br />";
Die versuchst array_sum auf $wert anzuwenden, das ist aber ein Array der mehr als nur die Werte enthält die Du addieren willst. Daher solltest Du Dir einen Array erstellen, der auch nur die Werte enthält die Du brauchst und summieren willst. Wenn Du da nur die Werte mit array_sum addieren willst kannst Du das so machen:
$Array = AC_GetLoggedValues(51787 /*[Archiv]*/, 50779 /*[Photovoltaik\Statistik\Tagesenergie Gesamt]*/, mktime(0, 0, 0, 1, 1, 2018), mktime(23, 59, 59, 1, 31, 2018), 0);
$array_values = [];
foreach($Array as $wert) {
$array_values[] = $wert['Value'];
echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Value'] . PHP_EOL;
}
$Total = array_sum($array_values);
echo "<br /><br />Summe = $Total <br />";
Boui
19. September 2018 um 08:40
3
Du möchtest doch eigentlich $wert[VALUE] summieren.
(Hochkomma finde ich gerade nicht)
Nachtrag: Sorry, überschnitten
Gesendet von iPhone mit Tapatalk
Pio
19. September 2018 um 09:38
4
Aus Interesse mal nachgeschlagen.
Quelle: https://stackoverflow.com/questions/12838729/multidimensional-array-array-sum
$Array = AC_GetLoggedValues(51787 /*[Archiv]*/, 50779 /*[Photovoltaik\Statistik\Tagesenergie Gesamt]*/, mktime(0, 0, 0, 1, 1, 2018), mktime(23, 59, 59, 1, 31, 2018), 0);
$Total = array_sum(array_column($Array, 'Value'));
echo "<br /><br />Summe = $Total <br />";
Grüße
Pio
Danke PIO hat funktioniert