uweoswald Geschrieben 26. Oktober 2010 Teilen Geschrieben 26. Oktober 2010 Hallo, ich bitte um Eure Hilfe, da mir bei meinen Problemlösungsversuchen die Ideen ausgehen. Ich versuche mal mein Problem zu beschreiben. Ich habe 2 Arrays, eins ist eindimensional und enthält ein Datum. Das Zweite ist mehrdimensional und enthält Werte. Hier ein Beispiel: ================= Array1 Datum: (print_r) ---------------------- Array ( [0] => 2010-10-25 00:00 [1] => 2010-10-25 00:05 [2] => 2010-10-25 00:10 [3] => 2010-10-25 00:15 [4] => 2010-10-25 00:20 [5] => 2010-10-25 00:25 [6] => 2010-10-25 00:30 [7] => 2010-10-25 00:35... (insgesamt 285 Werte/Einträge) ================= Array2 Werte: (print_r) ---------------------- Array ( [0] => Array ( [0] => 522.806036 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 100.237072 [13] => 0 [14] => 0 [15] => 0 [16] => 0 [17] => 0 [18] => 0 [19] => 0 [20] => 0 [21] => 0 [22] => 0 [23] => 0 [24] => 224.140732 [25] => 0 [26] => 0 [27] => 0 [28] => 0 [29] => 0... (12 Arrays in dem Array mit jeweils auch 285 Werten) Als erstes muss ich bestimmt aus den beiden Array's eins machen, dass ist leicht, aber mein Ziel ist komplizierter. Die Werte aus dem 2. Array sollen zusammenaddiert und dann absteigend sortiert werden, so dass der Wert, an dem die Summe aller Arrays an oberster Stelle steht GLEICHZEITIG muss das Datum, die Uhrzeit mit sortiert werden. Ziel ist es eine Aussage treffen zu können, wenn einer fragt, zu welcher Uhrzeit war die Gesamtsumme xyz. Habe mir die verschiedenen Sortiermöglichkeiten angeschaut, finde aber nichts passendes und möchte nicht noch ein Array anlegen, sondern suche nach einer eleganten Lösung mit bestehenden Variablen. Ich bedanke mich im Voraus für Eure Hilfe. Gruß Uwe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
uweoswald Geschrieben 26. Oktober 2010 Autor Teilen Geschrieben 26. Oktober 2010 Hallo, habe in der Zwischenzeit weiter probiert und twar mit einem neuen, zweidimensionalen Array. Hier der Codeschnipsel... //neues array erzeugen $newarray = array(array(),array()); $newarray[0] = $uhrzeit; for ($n=0; $n<count($maxmsu[0]) ;$n++) { $summe=0; for ($i=0; $i<count($maxmsu) ;$i++) { if (isset($maxmsu[$i][$n])) $summe=$summe+$maxmsu[$i][$n]; // Werte aufsummieren } $newarray[1][] = $summe; // Wert in das 2 Arrayelement schreiben } //Soweit alles OK ! // Vergleichsfunktion function vergleich($wert_a, $wert_ { // Sortierung nach dem zweiten Wert des Array (den Werten) $a = $wert_a[1]; $b = $wert_b[1]; if ($a == $ { return 0; } return ($a < $ ? -1 : +1; } // Aufruf von usort() mit dem Array, das sortiert werden soll und dem Namen der Vergleichsfunktion usort($newarray, 'vergleich'); print_r wird nicht das gewünschte Ergebnis aus. Zum Einen sind die Arrays nicht sortirt und zum Zweiten dreht er das "Hauptarray" herum, d.h. "altes" Hauptarray ($newarray) [0] ist dann [1] und umgekehrt ???????!!!!!!!! Hilfe Danke Gruß Uwe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 27. Oktober 2010 Teilen Geschrieben 27. Oktober 2010 PHP: array_merge - Manual PHP: array_multisort - Manual PHP: array_merge_recursive - Manual PHP: array_walk - Manual PHP: array_walk_recursive - Manual Ich hoffe du kennst die Funktionen schon. Lese dich mal da ein. Wahrscheinlich geht es dann weiter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.