在 PHP 中對日期數組進行排序可能很棘手,尤其是在日期不是標準化格式的情況下。
根據您的具體情況,您有不同格式的日期數組,例如「11-01-2012」和「01-01-2014」。在這種情況下,使用按值升序對數組進行排序的 asort 函數將不起作用,因為它將每個日期視為字串並忽略年-月-日層次結構。
要正確對陣列進行排序,您可以使用自訂排序函數,在比較之前將每個日期轉換為可排序的格式。
將日期轉換為 UNIX 時間戳
一個簡單的方法是將每個日期轉換為使用 strtotime() 函數的 UNIX 時間戳記。 UNIX 時間戳將日期表示為自 1970-01-01 年以來的秒數,這使得它們易於比較和排序。
以下是使用自訂排序函數使用UNIX 時間戳對日期進行排序的範例:
<code class="php">usort($arr, function ($a, $b) { return strtotime($a) - strtotime($b); });</code>
此函數將以兩個日期作為輸入(由$a 和$b 變量表示)並傳回它們的UNIX 時間戳記之間的差異。產生的陣列將按時間順序升序排序。
其他注意事項
需要注意的是,此方法假設所有日期都採用相同的格式。如果您的日期來自不同的來源或使用不同的日期格式,您將需要使用更強大的日期解析和轉換庫。
以上是如何在 PHP 中對不同格式的日期數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!