ホームページ > バックエンド開発 > PHPチュートリアル > PHP の glob() 関数で取得したファイルを最終変更日で並べ替えるにはどうすればよいですか?

PHP の glob() 関数で取得したファイルを最終変更日で並べ替えるにはどうすればよいですか?

DDD
リリース: 2024-11-28 15:12:14
オリジナル
754 人が閲覧しました

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() と組み合わせて使用​​すると、ファイルの変更時間を比較し、それに応じて配列を並べ替えることができます。

usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));
ログイン後にコピー

このコードでは、create_function() はファイルの変更時間を減算する匿名関数を定義しています。最初のファイル ($a) から 2 番目のファイル ($b) まで。この減算の結果は、それらの時系列順序を示します。その後、usort() はこの関数を使用して、変更時刻に基づいて $myarray を昇順に並べ替えます。

create_function() の非推奨

残念ながら、create_function() は廃止されました。 PHP 7.2 で非推奨となり、PHP 8.0 で削除されました。これは、上記のコードが最新バージョンの PHP では機能しなくなることを意味します。

代替ソリューション

glob() を使用して最終変更日でファイルを並べ替える代替ソリューションには、次のものが含まれます。 :

  • usort() での比較関数の使用: を利用するカスタム比較関数を定義します。 filemtime() 関数を使用し、それを usort() に渡します。
  • SORT_NATURAL フラグを指定した sort() 関数の使用: ファイル名が自然な並べ替えを可能にする方法で構造化されている場合は、並べ替えを使用できます。 SORT_NATURAL フラグを使用した () 関数。

以上がPHP の glob() 関数で取得したファイルを最終変更日で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート