Fragen zum Sortieren Array nach Zeit in PHP

8

--- Array $ punkte ----

%Vor%

Ich habe oben ein Array und möchte dieses Array nach der Zeit sortieren. Dann habe ich den Code wie folgt verwendet, um zu sortieren und das Ergebnis ist korrekt. Wenn ich jedoch den Code time[$key] = $val[0] in $time = $val[0] geändert habe, ist das Ergebnis falsch.

Kann mir das jemand erklären? Vielen Dank!

%Vor%     
Acubi 03.01.2012, 16:09
quelle

3 Antworten

7

array_multisort sortiert mehr als ein Array gleichzeitig. Es funktioniert jedoch in einem Array von Spalten, sodass die foreach -Schleife benötigt wird, um eine Spalte der Zeiten zu erhalten. Nachdem Sie diese Liste erstellt haben, können Sie den Multisort ausführen. Das $points -Array ist nach den Indizes in $times geordnet, wie in dieses Beispiel in den Dokumenten .

Sie müssen die Sortierung jedoch nicht innerhalb von foreach durchführen, da dies bedeutet, dass die Sortierung viermal erfolgt (in Ihrem Beispiel). Es muss nur einmal passieren:

%Vor%     
cmbuckley 03.01.2012, 16:38
quelle
3

Die Funktion ausort() benötigt eine Vergleichs-Callback-Funktion. Sie können dies verwenden, um zwei Zeitstempel zu vergleichen.

%Vor%

Der obige Code wird zurückgeben

%Vor%     
kba 03.01.2012 16:23
quelle
-2

Was Sie tun möchten, ist (Grundidee):

%Vor%

Danach haben Sie ein Array von point => time -Paaren, sortiert nach Zeit. Um nur die Punkte zu bekommen, zum Beispiel

%Vor%     
Rijk 03.01.2012 16:13
quelle