Ich habe ein Array wie:
Array
(
[0] => Array
(
[id] => 2
[type] => comment
[text] => hey
[datetime] => 2010-05-15 11:29:45
)
[1] => Array
(
[id] => 3
[type] => status
[text] => oi
[datetime] => 2010-05-26 15:59:53
)
[2] => Array
(
[id] => 4
[type] => status
[text] => yeww
[datetime] => 2010-05-26 16:04:24
)
)
Kann jemand eine Möglichkeit vorschlagen, dies basierend auf dem datetime-Element zu sortieren / zu ordnen?
$a
und$b
hält die Arrays in$array
. Stellen Sie sicher, dass Sie den Funktionsnamen nicht falsch geschrieben haben.usort($array, array($this, "date_compare"))
, damit Sieusort()
wissen , dass es sich um eine Klassenfunktion / -methode handelt. Siehe auch: php.net/manual/en/…Das sollte funktionieren. Ich habe das Datum über strtotime in Unix-Zeit konvertiert.
Eine einzeilige Version würde mehrere Array-Methoden verwenden:
quelle
Ab PHP7 können Sie den Raumschiff-Operator verwenden :
quelle
http://us2.php.net/manual/en/function.array-multisort.php siehe drittes Beispiel:
Zu Ihrer Information, die Verwendung eines Unix (Sekunden ab 1970) oder eines MySQL-Zeitstempels (YmdHis - 20100526014500) wäre für den Parser einfacher, aber ich denke, in Ihrem Fall macht es keinen Unterschied.
quelle
Sortieren des Arrays von Datensätzen / assoc_arrays nach dem angegebenen MySQL-Datum / Uhrzeit-Feld und nach Reihenfolge:
quelle
str_to_upper
zustrtoupper
.quelle
Sie können dieses Problem einfach mit usort () mit Rückruffunktion lösen . Sie müssen keine benutzerdefinierte Funktion schreiben.
quelle
Ich bin auf diesen Beitrag gestoßen, wollte aber bei der Rückgabe der Artikel in meiner Klasse nach Zeit sortieren und habe eine Fehlermeldung erhalten.
Also recherchiere ich auf der php.net-Website und mache am Ende Folgendes:
Sie finden sehr nützliche Beispiele auf der PHP.net-Website
Mein Array sah folgendermaßen aus:
quelle
Für
'd/m/Y'
Daten:Wo
$i
ist der Array-Index?quelle
Für diejenigen, die in einer Klasse mit der Funktion sortByDate noch auf diese Weise eine Lösung suchen, siehe den folgenden Code
quelle