How to Sort by Descending Collection in Laravel?

April 26, 2020 | Category : Laravel

Hi Artisan,

This article will provide some of the most important example laravel collection sort by date desc. this example will help you laravel eloquent order by desc. Here you will learn laravel collection sort by desc two fields. i would like to show you laravel collection sort by desc.

I will give you list of examples of sort by desc colletion in laravel. so you can easily use it with your laravel 5, laravel 6 and laravel 7 application. so let's see bellow example that will helps you lot.

1) Example 1: Laravel Collection Sort By Desc Simple Example

2) Example 2: Laravel Collection Sort By Desc Count

3) Example 3: Laravel Collection Sort By Date Desc

4) Example 4: Laravel Collection Sort By Desc Multiple Coulmns

5) Example 5: Laravel Collection Sort By Desc Relation

Example 1: Laravel Collection Sort By Desc Simple Example

public function index()

{

$collection = collect([

['id' => 1, 'name' => 'Hardik', 'email' => 'hardik@gmail.com'],

['id' => 2, 'name' => 'Ankit', 'email' => 'ankit@gmail.com'],

['id' => 3, 'name' => 'Balo', 'email' => 'balo@gmail.com'],

]);

$sorted = $collection->sortByDesc('name');

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[0] => Array

(

[id] => 1

[name] => Hardik

[email] => hardik@gmail.com

)

[2] => Array

(

[id] => 3

[name] => Balo

[email] => balo@gmail.com

)

[1] => Array

(

[id] => 2

[name] => Ankit

[email] => ankit@gmail.com

)

)

)

Example 2: Laravel Collection Sort By Desc Count

public function index()

{

$collection = collect([

['id' => 1, 'name' => 'Vivo', 'models' => ['v11', 'v85']],

['id' => 2, 'name' => 'Appo', 'models' => ['a23']],

['id' => 3, 'name' => 'Apple', 'models' => ['s5', 's6', 's7']],

]);

$sorted = $collection->sortByDesc(function ($product, $key) {

return count($product['models']);

});

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[2] => Array

(

[id] => 3

[name] => Apple

[models] => Array

(

[0] => s5

[1] => s6

[2] => s7

)

)

[0] => Array

(

[id] => 1

[name] => Vivo

[models] => Array

(

[0] => v11

[1] => v85

)

)

[1] => Array

(

[id] => 2

[name] => Appo

[models] => Array

(

[0] => a23

)

)

)

)

Example 3: Laravel Collection Sort By Date Desc

public function index()

{

$collection = collect([

['id' => 1, 'name' => 'Hardik', 'created_date' => '2020-04-05'],

['id' => 2, 'name' => 'Ankit', 'created_date' => '2020-04-01'],

['id' => 3, 'name' => 'Balo', 'created_date' => '2020-04-03'],

]);

$sorted = $collection->sortByDesc('created_date');

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[0] => Array

(

[id] => 1

[name] => Hardik

[created_date] => 2019-04-05

)

[2] => Array

(

[id] => 3

[name] => Balo

[created_date] => 2020-04-03

)

[1] => Array

(

[id] => 2

[name] => Ankit

[created_date] => 2020-04-01

)

)

)

Example 4: Laravel Collection Sort By Desc Multiple Coulmns

public function index()

{

$collection = collect([

['id' => 1, 'name' => 'Hardik', 'city' => 'Mumbai'],

['id' => 2, 'name' => 'Ankit', 'city' => 'Rajkot'],

['id' => 3, 'name' => 'Balo', 'city' => 'Rajkot'],

['id' => 4, 'name' => 'Ankit', 'city' => 'Mumbai'],

]);

$sorted = $collection->sortByDesc(function ($product, $key) {

return $product['city'].$product['name'];

});

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[2] => Array

(

[id] => 3

[name] => Balo

[city] => Rajkot

)

[1] => Array

(

[id] => 2

[name] => Ankit

[city] => Rajkot

)

[0] => Array

(

[id] => 1

[name] => Hardik

[city] => Mumbai

)

[3] => Array

(

[id] => 4

[name] => Ankit

[city] => Mumbai

)

)

)

Example 5: Laravel Collection Sort By Desc Relation

public function index()

{

$posts = Post::get()->sortByDesc(function($query){

return $query->auther->name;

})

->all();

}

I hope it can help you...