在PHP中变换递归迭代器对象


Shuffling a RecursiveIteratorIterator object in PHP

我试图获得目录中的文件列表,但RecursiveIteratorIterator对象按字母顺序获取它们。是否有任何方法来洗牌递归迭代器对象在PHP?

谢谢。

对迭代器进行洗牌是没有意义的,因为在看到全部结果之前,您无法知道如何洗牌,而一旦您这样做了,我们就不再是在处理迭代器,而是在处理一个物化集合。

这意味着在一般情况下只有一个选项可用:

$data = iterator_to_array($iterator);
shuffle($data);