Wie sortiere ich ein Array von Objekten nach Datum in PHP?

Linda Hamilton
Freigeben: 2024-10-26 03:36:03
Original
1082 Leute haben es durchsucht

How to Sort an Array of Objects by Date in PHP?

Sortieren eines Arrays von Objekten nach Datum

In PHP stoßen wir oft auf die Notwendigkeit, ein Array von Objekten nach einer bestimmten Eigenschaft zu sortieren, beispielsweise ein Datumsfeld. Dadurch können wir unsere Daten in chronologischer Reihenfolge anzeigen oder bearbeiten.

Objekte nach Datum neu anordnen

Betrachten Sie das folgende Array von Objekten, wobei jedes Objekt einen Datensatz mit a darstellt Datumseigenschaft:

<code class="php">$array = [
    495 => (object)['date' => '2009-10-31 18:24:09'],
    582 => (object)['date' => '2010-2-11 12:01:42'],
];</code>
Nach dem Login kopieren

Um diese Objekte nach ihrer Datumseigenschaft in aufsteigender Reihenfolge (älteste zuerst) zu sortieren, können wir die Funktion strtotime() und die Funktion usort() verwenden.

Benutzerdefinierte Vergleichsfunktion

Um usort() zu verwenden, müssen wir eine benutzerdefinierte Vergleichsfunktion definieren, die zwei Objekte basierend auf ihrer Datumseigenschaft vergleicht. Der folgende Code definiert eine Funktion, die den Zeitstempel (konvertiert mit strtotime()) des Datums des ersten Objekts vom Zeitstempel des Datums des zweiten Objekts subtrahiert:

<code class="php">function cb($a, $b) {
    return strtotime($a['date']) - strtotime($b['date']);
}</code>
Nach dem Login kopieren

Sortieren des Arrays mit usort()

Sobald wir unsere Vergleichsfunktion haben, können wir usort() für das Array aufrufen und die Vergleichsfunktion als zweites Argument übergeben:

<code class="php">usort($array, 'cb');</code>
Nach dem Login kopieren

Beispiel

Unter Verwendung des Beispielarrays von früher wäre das resultierende sortierte Array:

<code class="php">[
    495 => (object)['date' => '2009-10-31 18:24:09'],
    582 => (object)['date' => '2010-2-11 12:01:42'],
]</code>
Nach dem Login kopieren

PHP 5.3 und höher

Für PHP 5.3 und darüber kann eine einfachere anonyme Funktion als Vergleichsfunktion verwendet werden:

<code class="php">usort($array, function($a, $b) {
    return strtotime($a['date']) - strtotime($b['date']);
});</code>
Nach dem Login kopieren

Dieser Ansatz erzielt das gleiche Sortierergebnis wie der vorherige.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Objekten nach Datum in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage