Das Sortieren eines Datumsarrays in PHP kann schwierig sein, insbesondere wenn die Daten nicht in einem standardisierten Format vorliegen.
In In Ihrem speziellen Fall verfügen Sie über eine Reihe von Daten in verschiedenen Formaten, z. B. „01.11.2012“ und „01.01.2014“. Die Verwendung der Funktion asort, die Arrays nach Werten in aufsteigender Reihenfolge sortiert, funktioniert in diesem Fall nicht, da sie jedes Datum als Zeichenfolge behandelt und die Hierarchie Jahr-Monat-Tag ignoriert.
Um Ihr Array korrekt zu sortieren, Sie können eine benutzerdefinierte Sortierfunktion verwenden, die jedes Datum vor dem Vergleich in ein sortierbares Format umwandelt.
Konvertieren von Daten in UNIX-Zeitstempel
Eine einfache Methode besteht darin, jedes Datum in umzuwandeln einen UNIX-Zeitstempel mit der Funktion strtotime(). UNIX-Zeitstempel stellen Datumsangaben als Anzahl der Sekunden seit dem 01.01.1970 dar, wodurch sie leicht zu vergleichen und zu sortieren sind.
Hier ist ein Beispiel für die Verwendung einer benutzerdefinierten Sortierfunktion zum Sortieren der Daten mithilfe von UNIX-Zeitstempeln:
usort($arr, function ($a, $b) {
return strtotime($a) - strtotime($b);
});
Diese Funktion verwendet zwei Datumsangaben als Eingabe (dargestellt durch die Variablen $a und $b) und gibt die Differenz zwischen ihren UNIX-Zeitstempeln zurück. Das resultierende Array wird in aufsteigender chronologischer Reihenfolge sortiert.
Zusätzliche Überlegungen
Es ist wichtig zu beachten, dass diese Methode davon ausgeht, dass alle Datumsangaben im gleichen Format vorliegen. Wenn Ihre Daten aus verschiedenen Quellen stammen oder unterschiedliche Datumsformate verwenden, müssen Sie eine robustere Datumsanalyse- und Konvertierungsbibliothek verwenden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3