Heim > Artikel > Backend-Entwicklung > Wie kann ich ein mehrdimensionales Array in PHP basierend auf einem Unix-Zeitstempel sortieren?
Sortieren eines mehrdimensionalen Arrays in PHP
Ziel
Sortieren eines mehrdimensionalen Arrays basierend auf der Unix-Zeitstempel, der im Unterarray „x“ gespeichert ist.
Lösung
Um dies zu erreichen, können Sie eine benutzerdefinierte Vergleichsfunktion in Verbindung mit der usort-Funktion verwenden.
Benutzerdefinierte Vergleichsfunktion
<code class="php">function compare($x, $y) { if ($x[4] == $y[4]) return 0; else if ($x[4] < $y[4]) return -1; else return 1; }</code>
Anwenden der Funktion mit usort
<code class="php">usort($arrayOfArrays, 'compare');</code>
Weitere Erläuterung
Die usort-Funktion erwartet als zweites Argument eine Vergleichsfunktion, die zwei Elemente aus dem Array entnimmt und einen negativen Wert zurückgibt, wenn das erste Element vor dem zweiten Element platziert werden soll, einen Nullwert, wenn dies der Fall sein sollte erscheinen in der gleichen Reihenfolge und ein positiver Wert, wenn das erste Element nach dem zweiten Element platziert werden soll.
Diese benutzerdefinierte Funktion vergleicht die Unix-Zeitstempelwerte an der vierten Position jedes Unterarrays. Wenn die Zeitstempel gleich sind, wird 0 zurückgegeben. Wenn der erste Zeitstempel vor dem zweiten liegt, wird -1 zurückgegeben. Andernfalls wird 1 zurückgegeben, was bedeutet, dass das zweite Unterarray nach dem ersten erscheinen sollte.
Das obige ist der detaillierte Inhalt vonWie kann ich ein mehrdimensionales Array in PHP basierend auf einem Unix-Zeitstempel sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!