在PHP中使用$ files = new DirectoryIterator()之后,如何对项目进行排序?

nop*_*ole 5 php sorting spl

我们可以通过PHP获取目录中的文件

$files = new DirectoryIterator() 
Run Code Online (Sandbox Code Playgroud)

之后是否有一种简单的方法来按特定顺序对项目进行排序以显示它们?谢谢.

gap*_*ple 9

看起来没有办法在迭代器中对数据进行排序.

您可以将显示数据放入中间数组,使用要排序的值的键,并在数组上调用ksort().然而,这将对数据进行两次传递.

$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";
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果将要输出的所有信息都放在数组值中的文件中,则可以简单地将数组内插(),而不是再次循环数据.