The sortByDesc
method operates exactly the same as the sortBy
method. The only differences is that the sortByDesc
method does not define a $descending
parameter. The sortByDesc
method internally makes a call to the sortBy
method passing true
as the argument for the $descending
parameter.
#Signature
1public function sortByDesc(
2 $callback,
3 $options = SORT_REGULAR
4);
#Example Use
The following calls to the sortBy
and sortByDesc
methods are functionally equivalent:
1use Illuminate\Support\Collection;
2
3// Create a new collection instance.
4$collection = new Collection([
5 ['name' => 'Marshall']
6]);
7
8$sorted = $collection->sortBy('name', SORT_REGULAR, true);
9
10$sorted = $collection->sortByDesc('name', SORT_REGULAR);
11
12$sorted = $collection->sortByDesc('name');
#Using sortByDesc
With Higher Order Messages
Like the sortBy
method, the sortByDesc
method can also be used with higher order messages. We will adjust the example explored in the sortBy
section:
The PeripheralDevice
Class:
1class PeripheralDevice
2{
3 public $name = '';
4
5 public function __construct($name)
6 {
7 $this->name = $name;
8 }
9}
sortByDesc
with Higher Order Messages:
1 $devices = collect([
2 'monitor',
3 'keyboard',
4 'printer',
5 'mouse',
6 'microphone'
7 ])->transform(function ($device) {
8 return new PeripheralDevice($device);
9 })->sortByDesc->name;
After the above code has executed, the $devices
variable would reference a collection instance containing PeripheralDevice
objects that are sorted in reverse-alphabetical order.
∎