Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP: Mehrdimensionales Array sortieren mit Datum

Empfohlene Antworten

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

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_B)

{

// Sortierung nach dem zweiten Wert des Array (den Werten)

$a = $wert_a[1];

$b = $wert_b[1];

if ($a == $B) {

return 0;

}

return ($a < $B) ? -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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.