HDTuto.com

How to Sort by Ascending Collection in Laravel?



Hi Artisan,

This article will provide example of laravel collection sort by name. i explained simply about laravel collection sort by function. i would like to show you laravel collection sort by relation. this example will help you laravel collection sort by two fields. Here, Creating a basic example of laravel collection sort by example.

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 and laravel 7 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...




April 26, 2020 | Category : Laravel



Blog Search