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,但是将以相反的顺序对集合进行排序。
以上是 Laravel 排序集合 的全部内容, 来源链接: utcz.com/z/315831.html