Laravel的array_sort帮助程序DESC e ASC

alm*_*lmo 5 php arrays laravel laravel-4

我想使用Laravel助手通过一个或多个键对multidimensionl数组进行排序array_sort.

array(
    array('firstname_1','lastname_1'),
    array('firstname_2','lastnmae_2')
)
Run Code Online (Sandbox Code Playgroud)

我想先用firstname然后用lastname来命令它.

我也希望以DESC或ASC顺序执行此操作.我怎样才能做到这一点?

互联网上有一些功能可以做到这一点,但我想了解如何使用Laravel助手.array_sort的文档(http://laravel.com/docs/helpers#arrays)我发现并不全面.

Ake*_*rts 5

array_sort()辅助函数是默认的非常薄的包装Illuminate\Support\Collection::sortBy()方法。不包括评论,这就是它所做的一切:

function array_sort($array, Closure $callback)
{
    return \Illuminate\Support\Collection::make($array)->sortBy($callback)->all();
}
Run Code Online (Sandbox Code Playgroud)

虽然方便,但它的分类能力有限。同样,Collection 类将允许您更改排序方向,但除此之外别无他法。

在我看来,您有两种选择:

  1. 跳过 Laravel-only 解决方案并使用一些普通的 PHP 和array_multisort(). 正如@Jon评论的那样,这个 SO question 中有一些很好的细节

  2. 在 Collection 对象中使用分组和排序的组合来实现您想要的结果。

我只是坚持#1。