Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么决定了PHP的顺序';s文件系统发射器,我可以更改它吗?_Php_File_Loops_Iteration - Fatal编程技术网

什么决定了PHP的顺序';s文件系统发射器,我可以更改它吗?

什么决定了PHP的顺序';s文件系统发射器,我可以更改它吗?,php,file,loops,iteration,Php,File,Loops,Iteration,要在目录中的文件上使用PHP进行迭代,我需要 $it = new FilesystemIterator('/path/of/files/to/iterate/over'); foreach ($it as $fileinfo) { echo $fileinfo->getFilename(); } 但是文件处理的顺序是什么?我做了一些测试,但似乎无法理解PHP使用的顺序。至少每次都是相同的顺序,但不是按字母顺序、mtime、ctime或atime。我试着用不同的名称创建一些空文件,它们

要在目录中的文件上使用PHP进行迭代,我需要

$it = new FilesystemIterator('/path/of/files/to/iterate/over');
foreach ($it as $fileinfo) {
  echo $fileinfo->getFilename();
}
但是文件处理的顺序是什么?我做了一些测试,但似乎无法理解PHP使用的顺序。至少每次都是相同的顺序,但不是按字母顺序、mtime、ctime或atime。我试着用不同的名称创建一些空文件,它们既没有按时间顺序显示,也没有按字母顺序排序

文件系统发射器使用什么顺序?为什么?我可以更改顺序吗?

如这里所述,迭代器进行迭代。您需要构建一个数组并对其进行排序


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

这可能只是目录文件中条目的顺序。这与文件最初创建的顺序关系不大,但随着文件被删除,新文件可能会取代它们。但是它是不可预测的,如果不复制整个目录,它是不可更改的。默认情况下,它具有“无排序”顺序-因此它由文件系统本身决定。和-不,这是不能更改的,但迭代器必须从某处获取其返回的数据。这个“某处”必须有一些顺序(可更改或不可更改)。这其实是我的问题是的,但是迭代器本身并不排序。使用迭代器_to_数组,并将FileSystemEmitter作为参数,然后对结果数组进行排序。谢谢,有了此注释,我将接受答案。:)