ホームページ >バックエンド開発 >PHPチュートリアル >PHP でグロブ化されたファイル配列を最終変更日時で効率的にソートするにはどうすればよいですか?

PHP でグロブ化されたファイル配列を最終変更日時で効率的にソートするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-30 09:47:10507ブラウズ

How Can I Efficiently Sort a Globbed File Array by Last Modified Datetime in PHP?

最終変更日時スタンプによってグローバルに並べ替えられたファイル配列

最終変更日時スタンプに基づいてファイルを並べ替えるのは、管理および整理する際の一般的なタスクです。ファイルシステム。 glob() 関数は、指定されたパターンに一致するファイルを取得する簡単な方法を提供しますが、結果の配列を日付でさらに並べ替えたい場合はどうすればよいでしょうか?

カスタム並べ替えアプローチ

1 つのアプローチは、最初の配列を反復処理し、ソートされたファイルを含む新しい配列を作成することです。これは機能しますが、大規模な配列では非効率になる可能性があります。より効率的な方法が存在します。

Usort 関数の利用

PHP には、ユーザー定義の比較関数を使用して配列を並べ替える usort() 関数が用意されています。これにより、要素を比較および順序付けする方法を指定できます。この例では、 filemtime() を使用して各要素の最終変更タイムスタンプを取得し、これらのタイムスタンプに基づいて配列を並べ替えることができます。

次のコード スニペットは、ファイルの配列を最終変更順に並べ替える方法を示しています。 usort() を使用した日時スタンプ:

// Retrieve an array of files using glob()
$myarray = glob("*.*");

// Define a comparison function for usort()
$compare = function($a, $b) {
    return filemtime($a) - filemtime($b);
};

// Sort the array using usort()
usort($myarray, $compare);

// Now the $myarray contains files sorted by last modified timestamp

create_function() が機能するため、このアプローチには PHP バージョン 5.3 以降が必要であることに注意してください。 PHP 7.2.0 以降では非推奨になりました。古いバージョンの PHP を使用している場合でも、匿名関数またはクロージャを使用して同様の機能を実現できます。

usort() と filemtime() を利用すると、ファイルの配列をその順序で効率的に並べ替えることができます。最終変更日時スタンプにより、より整理され管理しやすいファイル リストが提供されます。

以上がPHP でグロブ化されたファイル配列を最終変更日時で効率的にソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。