Laravel Collection SortBy Tutorial with Examples

By Hardik Savani April 16, 2024 Category : Laravel

Hi Artisan,

If you need to see example of laravel collection sort by example. i explained simply step by step laravel collection sort by two columns. we will help you to give example of laravel collection sort by date. step by step explain laravel collection sort by name.

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

1) Example 1: Laravel Collection Sort By Simple Example

2) Example 2: Laravel Collection Sort By Count

3) Example 3: Laravel Collection Sort By Date

4) Example 4: Laravel Collection Sort By Two Fields

5) Example 5: Laravel Collection Sort By Relation

Example 1: Laravel Collection Sort By 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->sortBy('name');

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[1] => Array

(

[id] => 2

[name] => Ankit

[email] => ankit@gmail.com

)

[2] => Array

(

[id] => 3

[name] => Balo

[email] => balo@gmail.com

)

[0] => Array

(

[id] => 1

[name] => Hardik

[email] => hardik@gmail.com

)

)

)

Example 2: Laravel Collection Sort By 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->sortBy(function ($product, $key) {

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

});

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[1] => Array

(

[id] => 2

[name] => Appo

[models] => Array

(

[0] => a23

)

)

[0] => Array

(

[id] => 1

[name] => Vivo

[models] => Array

(

[0] => v11

[1] => v85

)

)

[2] => Array

(

[id] => 3

[name] => Apple

[models] => Array

(

[0] => s5

[1] => s6

[2] => s7

)

)

)

)

Example 3: Laravel Collection Sort By Date

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->sortBy('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

)

[1] => Array

(

[id] => 2

[name] => Ankit

[created_date] => 2020-04-01

)

[2] => Array

(

[id] => 3

[name] => Balo

[created_date] => 2020-04-03

)

)

)

Example 4: Laravel Collection Sort By Two Fields

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->sortBy(function ($product, $key) {

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

});

$sorted->all();

dd($sorted);

}

Output:

Illuminate\Support\Collection Object

(

[items:protected] => Array

(

[3] => Array

(

[id] => 4

[name] => Ankit

[city] => Mumbai

)

[0] => Array

(

[id] => 1

[name] => Hardik

[city] => Mumbai

)

[1] => Array

(

[id] => 2

[name] => Ankit

[city] => Rajkot

)

[2] => Array

(

[id] => 3

[name] => Balo

[city] => Rajkot

)

)

)

Example 5: Laravel Collection Sort By Relation

public function index()

{

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

return $query->auther->name;

})

->all();

}

I hope it can help you...

Shares