Laravel 排序集合
示例
有几种不同的方式对集合进行排序。
Sort()
该sort方法对集合进行排序:
$collection = collect([5, 3, 1, 2, 4]); $sorted = $collection->sort(); echo $sorted->values()->all(); returns : [1, 2, 3, 4, 5]
该sort方法还允许使用您自己的算法传递自定义回调。在幕后排序使用php的usort。
$collection = $collection->sort(function ($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
});SortBy()
该sortBy方法按给定键对集合进行排序:
$collection = collect([
['name' => 'Desk', 'price' => 200],
['name' => 'Chair', 'price' => 100],
['name' => 'Bookcase', 'price' => 150],
]);
$sorted = $collection->sortBy('price');
echo $sorted->values()->all();
returns: [
['name' => 'Chair', 'price' => 100],
['name' => 'Bookcase', 'price' => 150],
['name' => 'Desk', 'price' => 200],
]该sortBy方法允许使用点表示法格式来访问更深的键,以便对多维数组进行排序。
$collection = collect([
["id"=>1,"product"=>['name' => 'Desk', 'price' => 200]],
["id"=>2, "product"=>['name' => 'Chair', 'price' => 100]],
["id"=>3, "product"=>['name' => 'Bookcase', 'price' => 150]],
]);
$sorted = $collection->sortBy("product.price")->toArray();
return: [
["id"=>2, "product"=>['name' => 'Chair', 'price' => 100]],
["id"=>3, "product"=>['name' => 'Bookcase', 'price' => 150]],
["id"=>1,"product"=>['name' => 'Desk', 'price' => 200]],
]SortByDesc()
此方法与该方法具有相同的签名sortBy,但是将以相反的顺序对集合进行排序。
热门推荐
10 新年祝福语简短的感谢
11 祝福语签名简短霸气女生
12 金婚祝福语大全简短唯美
13 中考考后祝福语简短
14 放假假期祝福语简短精辟
15 简短搞笑蛋糕生日祝福语
16 元旦英文祝福语大全简短
17 微信立冬祝福语简短
18 写给女友的祝福语++简短