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)我发现并不全面.
该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 类将允许您更改排序方向,但除此之外别无他法。
在我看来,您有两种选择:
跳过 Laravel-only 解决方案并使用一些普通的 PHP 和array_multisort(). 正如@Jon评论的那样,这个 SO question 中有一些很好的细节。
在 Collection 对象中使用分组和排序的组合来实现您想要的结果。
我只是坚持#1。