有没有一种简单的方法可以在PHP中对迭代器进行排序(而不是将其全部拉入数组并对其进行排序).
我具有的具体示例是DirectoryIterator,但是对任何迭代器都有一个通用的解决方案会很好.
$dir = new DirectoryIterator('.'); foreach ($dir as $file) echo $file->getFilename();
我希望能够通过各种标准(文件名,大小等)对它们进行排序
没有办法做到这一点.迭代器应该"遍历"列表.您必须对基础列表进行排序以实现所需的行为.
顺便提一下,对SPL的更完整的引用如下:http: //www.php.net/~helly/php/ext/spl/
对于那些在5年后结束的人:
如果您将Iterator作为ArrayIterator的扩展,则可以使用
ArrayIterator :: uasort(按值排序)和ArrayIterator :: uksort(按键排序)
http://php.net/manual/en/arrayiterator.uasort.php
http://php.net/manual/en/arrayiterator.uksort.php