我想使用 Laravel 助手 array_sort
按一个或多个键对多维数组进行排序。
array(
array('firstname_1','lastname_1'),
array('firstname_2','lastnmae_2')
)
我想先按名字再按姓氏排序。
我也想按 DESC 或 ASC 顺序执行此操作。我怎样才能做到这一点?
互联网上有可用的函数来执行此操作,但我想了解如何使用 Laravel 助手。 array_sort ( http://laravel.com/docs/helpers#arrays) 的文档我觉得不全面。
最佳答案
array_sort()
辅助函数是对默认 Illuminate\Support\Collection::sortBy()
方法的非常薄的包装。排除评论,这就是它所做的一切:
function array_sort($array, Closure $callback)
{
return \Illuminate\Support\Collection::make($array)->sortBy($callback)->all();
}
虽然方便,但它的排序能力有限。同样,Collection 类将允许您更改排序方向,但除此之外别无其他。
在我看来,您有两个选择:
跳过仅限 Laravel 的解决方案并使用一些普通的 PHP 和
array_multisort()
。作为@Jon评论,there's some great details in this SO question .在 Collection 对象中结合使用分组和排序来实现您想要的结果。
我会坚持使用#1。
关于php - Laravel 的 array_sort 助手 DESC e ASC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24612944/