2014-09-24 78 views
4

默認情況下,Symfony Finder ComponentASC順序排序文件。如何使用Symfony Finder組件按DESC順序對文件進行排序?

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

如何按DESC排序文件?

+0

symfony的取景器組件不能做到這一點,你必須通過遞減排序,得到後導致 – 2014-09-24 13:23:21

+0

你也可以使用'sort'方法,並給你自己的排序匿名函數(請參閱Symfony \ Component \ Finder \ Iterator \ SortableIterator) – 2014-09-24 13:24:54

+0

@YannEugoné你可以給我例舉匿名函數的例子嗎? – 2014-09-24 13:26:03

回答

10

你可以使用那種方法,並給出自己的排序匿名函數(見Symfony\Component\Finder\Iterator\SortableIterator

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

這是所有關於排序的提示。 這種工作總是一樣的。 請看看usort function

更確切地說,我剛剛從Symfony\Component\Finder\Iterator\SortableIterator開始了代碼snipet,並且我已經恢復了返回條件。

5

在Symfony的\分量\搜索\迭代器\ SortableIterator可以看到ASC情況下,這樣的DESC的情況是:

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