array_sum nur für eindimensionale Arrays?
Uhf
- php
0 Henryk Plötz0 Thomas Meinike0 uhf
Hallo Forum,
ich habe ein zweidimensionales numerisches Array
$install[Zeilennummer][Spaltennummer]. Von diesem hätte ich gerne die Spaltensumme. Also ich will die Spalte festhalten und die Zahlen aller Zeilen summieren. Mit array_sum komme ich auf keinen grünen Zweig. Oder gehts mit array_sum und ich benutze eine falsche Syntax?
$summe = array_sum($install[][$i]);
Wobei $i die Zählschleife für die Spalten bildet. Ich will natürlich nicht nur eine Summe bilden.
Kann mir jemand weiterhelfen?
Wär nett.
Gruß
Uhf
Moin
Mit array_sum komme ich auf keinen grünen Zweig.
$summe = array_sum($install[][$i]);
Das liegt daran dass du hier mit $install[] ein neues Arrayelement erzeugst und dann das $i. Element davon (das natürlich leer ist) an array_sum als zu summierendes Array übergibst.
Ich würde das etwa so machen
<?php
$summenarray=Array();
foreach($install as $i) {
foreach($i as $k => $j) {
$summenarray[$k] += $j;
}
}
?>
$summenarray enthält jetzt an den Indizes der Spalten aus $install die Summe über die jeweilige Spalte. (Sollte es zumindest, ungetestet)
--
Henryk Plötz
Grüße aus Berlin
Hallo Uwe,
ich habe ein zweidimensionales numerisches Array
$install[Zeilennummer][Spaltennummer]. Von diesem hätte ich gerne die Spaltensumme. Also ich will die Spalte festhalten und die Zahlen aller Zeilen summieren. Mit array_sum komme ich auf keinen grünen Zweig. Oder gehts mit array_sum und ich benutze eine falsche Syntax?
$summe = array_sum($install[][$i]);
Beispiel:
$x=array(2);
$x[0]=array(2);
$x[0][0]=1;
$x[0][1]=4;
// array_sum($x[0]) --> 5
$x[1]=array(2);
$x[1][0]=2;
$x[1][1]=6;
// array_sum($x[1]) --> 8
Wobei $i die Zählschleife für die Spalten bildet. Ich will natürlich nicht nur eine Summe bilden.
Verwende zwei geschachtelte Schleifen:
$s=array();
for($i=0;$i<2;$i++)
{
for($j=0;$j<2;$j++)
{
$s[$j]+=$x[$i][$j];
}
}
// $s[0] --> 3
// $s[1] --> 10
MfG, Thomas
High,
hatte jetzt zwar noch keine Zeit mir die beiden Antworten näher anzuschauen. Beim drüberfliegen sah es jedoch so aus, daß einige neue Ansätze für mich drinsteckten. Dafür Thx erstmal.
Was mich wurmt, ist wirklich, daß ich nirgendwo eine Dokumentation gefunden habe, die die einzelnen Array-Funktionen auch für höher-Dimensionale Arrays erläutert.
Bye und schönes Wochenende
Uhf