是什么决定了PHP's文件系统迭代器的顺序,我可以改变它吗?


What determines the order of PHP's FilesystemIterator and can I change it?

使用PHP遍历目录中的文件,我使用

$it = new FilesystemIterator('/path/of/files/to/iterate/over');
foreach ($it as $fileinfo) {
  echo $fileinfo->getFilename();
}

但是这里处理文件的顺序是什么?我做了一些测试,但我似乎无法理解PHP使用的顺序。至少每次都是相同的顺序,但不是按字母顺序排列的,不是mtime、ctime或atime。我试着用不同的名字创建一些空文件,它们既没有按时间顺序显示,也没有按字母顺序排序。

FilesystemIterator使用什么顺序?,为什么?我可以更改订单吗?

这里告诉DirectoryIterator sort,迭代器迭代。您需要构建一个数组并对其排序。

迭代器是一种设计模式,用于遍历容器中的元素。更多信息:迭代器模式