首頁 >後端開發 >php教程 >如何以上次修改日期對使用 PHP 的 glob() 函數擷取的檔案進行排序?

如何以上次修改日期對使用 PHP 的 glob() 函數擷取的檔案進行排序?

DDD
DDD原創
2024-11-28 15:12:14693瀏覽

How Can I Sort Files Retrieved with PHP's glob() Function by Their Last Modified Date?

使用glob() 依上次修改日期對檔案進行排序

使用檔案系統時,通常需要依照檔案的屬性來組織文件,例如他們的修改時間。在 PHP 中,glob() 函數可用於檢索檔案數組,但預設情況下,它不會保留檔案的順序。

挑戰:按修改日期排序

假設您有一個使用glob() 獲取的文件數組,並且您希望根據每個文件的最後修改日期時間戳對該數組進行排序。循環遍歷數組並手動將其排序到單獨的數組中是一個可行的選擇,但這不是最有效或最方便的方法。

解決方案:使用 create_function()

在 PHP 7.2 之前,create_function() 函數提供了定義匿名函數的方法。它可以與usort() 結合使用,比較文件的修改時間並對數組進行相應的排序:

在這段程式碼中,create_function() 定義了一個匿名函數,它減去文件的修改時間將第一個檔案($a) 與第二個檔案($b) 進行比較。這個減法的結果顯示了它們的時間順序。然後,usort() 使用此函數根據修改時間對 $myarray 進行升序排序。

不建議使用 create_function()

不幸的是,create_function() 已被棄用在 PHP 7.2 中棄用並在 PHP 8.0 中被刪除。這意味著上述程式碼將不再在現代版本的 PHP 中運作。

替代解決方案

使用glob() 以上次修改日期對文件進行排序的替代方案包括:

  • 將文件進行排序的替代方案包括:
  • 將比較函數與usort() 結合使用:定義自訂比較函數,該函數利用filemtime() 函數並將其傳遞給usort()。
使用帶有 SORT_NATURAL 標誌的 sort() 函數:如果檔案名稱的結構允許自然排序,則可以使用 sort( ) 帶有 SORT_NATURAL 標誌的函數。

以上是如何以上次修改日期對使用 PHP 的 glob() 函數擷取的檔案進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn