![](/img/trans.png)
[英]How can I sort array by values (DESC, Numeric) and keep non-numeric keys order?
[英]How can I sort files by DESC order with Symfony Finder Component?
默认情况下, Symfony Finder组件按ASC
顺序对文件进行排序。
//sorting by ASC order
$finder->files()->in($this->getDumpPath())->sortByModifiedTime();
如何通过DESC
对文件进行排序?
您可以使用sort方法并提供自己的排序匿名函数(请参阅Symfony\\Component\\Finder\\Iterator\\SortableIterator
)
$finder->sort(function ($a, $b) { return strcmp($b->getRealpath(), $a->getRealpath()); });
这都是关于排序技巧。 这种工作总是一样的。 请查看usort功能 。
更确切地说,我只是从Symfony\\Component\\Finder\\Iterator\\SortableIterator
获取代码snipet,并且我已经恢复了返回条件。
在Symfony \\ Component \\ Finder \\ Iterator \\ SortableIterator中,您可以看到ASC案例,因此DESC案例是:
$finder->files()->in($this->getDumpPath())->sort(
function ($a, $b) {
return ($b->getMTime() - $a->getMTime());
}
);
现在可以使用Symfony 4.2中引入的reverseSorting方法。
$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()) );
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.