📅  最后修改于: 2023-12-03 15:32:36.668000             🧑  作者: Mango
在 Laravel 中,对于集合(Collection)和数组(Array)进行排序时,可以使用 sort()
方法以升序方式对元素进行迭代排序。
$collection = collect([5, 3, 1, 2, 4]);
$sorted = $collection->sort();
$sorted->all(); // [1, 2, 3, 4, 5]
sort()
方法按照元素的 ASCII 码值进行排序,如果需要对数字进行排序,可以使用 sort()
的回调函数参数,其中 $a
和 $b
分别表示集合中要进行比较的两个元素。如果要进行数字排序,则需要将比较结果强制转换为整数。
$collection = collect([5, 3, 1, 2, 4]);
$sorted = $collection->sort(function ($a, $b) {
return (int) $a - (int) $b;
});
$sorted->all(); // [1, 2, 3, 4, 5]
此外,Laravel 还提供了 sortBy()
方法,可以使用回调函数对集合进行排序。例如,可以按照集合中每个元素的字符串长度进行排序:
$collection = collect(['abc', 'de', 'fghi']);
$sorted = $collection->sortBy(function ($string) {
return strlen($string);
});
$sorted->values()->all(); // ['de', 'abc', 'fghi']
sort()
和 sortBy()
方法是 Laravel 中常用的集合排序方法。使用 sort()
方法可以对集合中的元素进行升序排列,使用 sortBy()
方法可以按照回调函数对集合进行排序。需要注意的是,如果要对数字进行排序,需要使用强制转换为整数的方式进行比较。