我有一个实现$iterator
界面的对象Iterator
,我想对其中的所有项目进行排序。
class MyIterator implements Iterator
{
public function current() {
return rand(0,10);
}
}
$iterator = new MyIterator();
uasort($iterator, function($a, $b) {
});
不幸的是:uasort()
和ArrayIterator::uasort()
仅适用于数组,我可能必须使用iterator_to_array()
编辑:不再使用Doctrine查询构建器迭代作为示例。
答案 0 :(得分:0)
我不能。我必须先将它转换为数组。
public function sort(iterable $iterator, $expression) {
if (is_array($iterator)===false) {
$iterator = iterator_to_array($iterator);
}
}