Как отсортировать файлы по заказу DESC с помощью Symfony Finder Component?

По умолчанию Компонент Symfony Finder сортирует файлы по ASC порядок.

//sorting by ASC order
$finder->files()->in($this->getDumpPath())->sortByModifiedTime();

Как я могу сортировать файлы по DESC?

5

Решение

Вы можете использовать метод сортировки и дать свою собственную анонимную функцию сортировки (см. Symfony\Component\Finder\Iterator\SortableIterator)

$finder->sort(function ($a, $b) { return strcmp($b->getRealpath(), $a->getRealpath()); });

Это все о сортировке советов.
С такой работой всегда одно и то же.
Пожалуйста, посмотрите на функция usort.

Чтобы быть более точным, я просто взял фрагмент кода из Symfony\Component\Finder\Iterator\SortableIteratorи я вернул условие возврата.

11

Другие решения

В Symfony \ Component \ Finder \ Iterator \ SortableIterator вы можете видеть случай ASC, поэтому случай DESC:

$finder->files()->in($this->getDumpPath())->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
5

reverseSorting метод, который был введен в Symfony 4.2, теперь можно использовать.

$finder = new Finder();
$finder->sortByModifiedTime();
$finder->reverseSorting();
$finder->files()->in( $directoryPath );

foreach ($finder as $file) {
// log each modification time for example
// $this->logger->debug ( \date('d/m/Y H:i', $file->getMTime()) );
}

Github совершить

1
По вопросам рекламы [email protected]