使用递归迭代器。这就是它的设计目的。我添加了一个名为 sortedIterator 的额外迭代器,它扩展了 SPLHeap,以按 getMTime() 排序,这是 dir 的修改时间。
将 $path 更改为目录的完整路径。
$path = '.';
class sortedIterator extends SplHeap
{
public function __construct(Iterator $iterator)
{
foreach ($iterator as $item) {
$this->insert($item);
}
}
public function compare($b,$a)
{
return strcmp($a->getMTime(), $b->getMTime());
}
}
$recursive = new RecursiveDirectoryIterator($path);
$sortByTime = new sortedIterator($recursive);
$i = 0;
foreach ($sortByTime as $file) {
if($file->isDir()){
$dirs[] = $file->getFilename();
if($i++ == 9){
break;
}
}
}
print_r(implode("<br />", $dirs));
编辑,如果您想要创建时间,请将 getMTime 更改为 getCTime。