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

PHP で glob() を使用して最終変更日でファイルを効率的に並べ替えるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 21:35:19648ブラウズ

How Can I Efficiently Sort Files by Last Modified Date in PHP Using glob()?

glob() 関数を使用した最終変更日時によるファイルの並べ替え

glob() 関数は、ファイルを一致する強力な PHP 関数です。与えられたパターン。並べ替えと組み合わせると、特定の基準に基づいてファイルを整理する効率的な方法が提供されます。

問題

ファイルの配列を最後の順に表示する必要がある場合日時スタンプが変更された場合、一般的なアプローチは配列をループし、それらを手動で新しい配列に並べ替えることです。ただし、この方法は時間がかかり、非効率的になる可能性があります。

ソリューション

PHP は、usort() 関数を使用したより効率的なソリューションを提供します。この関数は 2 つの引数を取ります。ソートされる配列と、要素の順序を決定する比較関数です。

次のコードは、usort() を glob() と組み合わせて使用​​して、ファイルの配列をソートする方法を示しています。最終変更日時スタンプ順:

<?php

$myarray = glob("*.*");
usort($myarray, create_function('$a,$b', 'return filemtime($a) - filemtime($b);'));

?>

説明

glob() 関数は、パターン "." に一致するファイルの配列を返します。次に、usort() 関数が配列に適用されます。

usort() に提供される比較関数は、filemtime() 関数を使用して各ファイルの変更タイムスタンプを抽出し、それらを減算して順序を決定します。この計算の結果は、最後に変更された日時スタンプに基づいて配列を昇順または降順に並べ替えるのに使用されます。

使用される create_function() ヘルパー関数提供されたコード内の は、PHP 7.2.0 で非推奨になりました。 PHP で匿名関数を定義する別の方法には、ラムダ関数やクロージャ構文などがあります。例:

usort($myarray, function ($a, $b) {
    return filemtime($a) - filemtime($b);
});

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

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