We can get the files in a directory in PHP by
$files = new DirectoryIterator()
after that is there an easy way to sort the items in a particular order for displaying them? thanks.
イテレータ内でデータをソートする方法があるようには見えません。
表示データを中間配列に配置し、並べ替えたい値のキーを指定して、配列で 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";
}
編集:
ファイルに出力したいすべての情報を配列値に配置すると、データをもう一度ループする代わりに、後で配列を単純に implode() することができます。
$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
$paths[$i++] = $files->getFileName();
$files->next();
}
sort($paths)
あなたが探しているものかもしれません。もちろん、いつでもソート機能を適用して、その後の好みに応じてパスをソートできます。