PHPで$ファイル=新しいのDirectoryIteratorを()を使用した後、どのようにアイテムを並べ替えるのですか?

StackOverflow https://stackoverflow.com/questions/1076881

  •  21-08-2019
  •  | 
  •  

質問

私たちは、

によりPHPでディレクトリ内のファイルを取得することができます
$files = new DirectoryIterator() 

その後、それらを表示するための特定の順序で項目をソートする簡単な方法はありますか?感謝ます。

役に立ちましたか?

解決

イテレータ内のデータをソートする方法があるように見えません。

あなたはソートしたい値のキーで、中間の配列に表示データを配置し、アレイ上の()ksort呼び出すことができます。しかし、これは、データ上の2つのパスになります。

$path = ".";
$files = new DirectoryIterator($path);
$files_array = array();

while($files->valid()) {
        // sort key, ie. modified timestamp
        $key = $files->getMTime();
        $data = $files->getFilename();
        $files_array[$key] = $data;
        $files->next();
}
ksort($files_array);
foreach($files_array as $key => $file){
    print $key . " => " . $file . "\n";
}

編集ます:

あなたは、配列の値のファイルの出力に必要な情報のすべてを置く場合は、

、あなたは、単に(内破することができます)の代わりに、再度データをループのその後の配列、ます。

他のヒント

$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
    $paths[$i++] = $files->getFileName();
    $files->next();
}
sort($paths)

あなたが探しているものであってもよいし、いつでも、もちろんその後、あなたの好みに応じてパスをソートするソート機能を適用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top