Jahak, у итератора вроде есть методы сортировки
Koenig, Это все, что есть у простого итератора, вот у меня итератор реализован на основе интерфейса Iterator, как мне отсортировать его?
// Примерный код
class Lol implements Iterator
{
public function current()
{
// TODO: Implement current() method.
}
public function next()
{
// TODO: Implement next() method.
}
public function key()
{
// TODO: Implement key() method.
}
public function valid()
{
// TODO: Implement valid() method.
}
public function rewind()
{
// TODO: Implement rewind() method.
}
}
Jahak, возьми arrayIterator
там есть
Koenig, Знаю, что он там есть но я не хочу так с использованием iterator_to_array
$path = __DIR__;
$files = new FilesystemIterator($path);
$files = new ArrayIterator(iterator_to_array($files));
$files->natcasesort();
foreach ($files as $file) {
var_dump($file);
}
Да и вообще хотелось бы обойтись без ArrayIterator, значит нет других вариантов?
Jahak, что ты там такое пишешь, ну прогони свой итератор, и загони в массив итератор и сортируй
Итераторы не сортируются. Воспринимайте итераторы как однопроходные списки.
Delphinum, Хм, да как же это например
http://johncms.com/forum/index ... 07960 ?
Jahak, это ты взял итератор, прошелся по нему сформировав массив, и отсортировал массив.
Сортировка ведь подразумевает изменение исходной коллекции? Если нет, то можно пройтись по итератору и по ходу сформировать отсортированную коллекцию из его элементов.
Delphinum, ну да так и есть, вот и хотелось отсортировать без превращения в массив.
Ладно, спс, дальше сам разберусь