Heim >Backend-Entwicklung >PHP-Tutorial >Wie sortiere ich ein mehrdimensionales PHP-Array nach einem Datetime-Element?

Wie sortiere ich ein mehrdimensionales PHP-Array nach einem Datetime-Element?

DDD
DDDOriginal
2024-12-16 15:10:21433Durchsuche

How to Sort a Multidimensional PHP Array by a Datetime Element?

Sortieren mehrdimensionaler Arrays nach Datumselement in PHP

Betrachten Sie ein Array mit einer Struktur ähnlich der folgenden:

$array = [
    [
        'id' => 2,
        'type' => 'comment',
        'text' => 'hey',
        'datetime' => '2010-05-15 11:29:45',
    ],
    [
        'id' => 3,
        'type' => 'status',
        'text' => 'oi',
        'datetime' => '2010-05-26 15:59:53',
    ],
    [
        'id' => 4,
        'type' => 'status',
        'text' => 'yeww',
        'datetime' => '2010-05-26 16:04:24',
    ],
];

Wie können wir Dieses Array nach dem Element „datetime“ sortieren?

Usort() mit einem benutzerdefinierten Vergleich verwenden Funktion

Die Funktion usort() von PHP benötigt ein Array und eine Vergleichsfunktion, die die Reihenfolge der Elemente bestimmt. Wir können eine benutzerdefinierte Vergleichsfunktion namens date_compare wie folgt erstellen:

function date_compare($a, $b)
{
    $t1 = strtotime($a['datetime']);
    $t2 = strtotime($b['datetime']);
    return $t1 - $t2;
}

Diese Funktion extrahiert den UNIX-Zeitstempel für das Feld „datetime“ jedes Datensatzes und gibt die Differenz zwischen ihnen zurück. Diese Informationen werden von usort() verwendet, um das Array zu sortieren.

Anwenden der Sortierfunktion

Schließlich können wir die Sortierfunktion mit usort() auf das Array anwenden:

usort($array, 'date_compare');

Dadurch wird das Array in aufsteigender Reihenfolge basierend auf dem Element „datetime“ sortiert.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales PHP-Array nach einem Datetime-Element?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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