📜  laravel sortby varchar date - PHP (1)

📅  最后修改于: 2023-12-03 15:02:35.596000             🧑  作者: Mango

Laravel中,如何按varchar和date排序

在Laravel编程中,我们经常需要对数据进行排序。有时,我们需要按照字符串或日期进行排序。本文将介绍如何使用Laravel的sortby函数来按照varchar和date进行排序。

使用sortby函数

sortby函数用于按照给定键对集合进行排序。我们可以使用该函数按照varchar和date进行排序。

如下所示,我们将使用sortby函数来对字母表顺序排序:

$collection = collect(['John', 'Donna', 'Adam', 'Jane']);

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

$sorted->values()->all();

输出结果:

array:4 [
  1 => "Adam"
  3 => "Donna"
  0 => "Jane"
  2 => "John"
]

在上面的例子中,我们将字符串'John', 'Donna', 'Adam', 'Jane'转化为集合,并使用sortBy函数按照名称排序。我们从输出结果可以发现,集合中的字符串已按字母表顺序进行了排序。

为了使用该函数来按照日期进行排序,我们需要保证集合中的日期格式正确。下面是一个例子:

$collection = collect([
    [
        'name' => 'John',
        'birthdate' => '1990-01-01',
    ],
    [
        'name' => 'Donna',
        'birthdate' => '1992-03-05',
    ],
    [
        'name' => 'Adam',
        'birthdate' => '1988-12-10',
    ],
    [
        'name' => 'Jane',
        'birthdate' => '1995-10-11',
    ],
]);

$sorted = $collection->sortBy('birthdate');

$sorted->values()->all();

输出结果:

array:4 [
  2 => array:2 [
    "name" => "Adam"
    "birthdate" => "1988-12-10"
  ]
  0 => array:2 [
    "name" => "John"
    "birthdate" => "1990-01-01"
  ]
  1 => array:2 [
    "name" => "Donna"
    "birthdate" => "1992-03-05"
  ]
  3 => array:2 [
    "name" => "Jane"
    "birthdate" => "1995-10-11"
  ]
]

在上面的例子中,我们将日期'1990-01-01', '1992-03-05', '1988-12-10', '1995-10-11'转化为集合,并使用sortBy函数按照birthdate排序。我们从输出结果可以看出,集合中的日期已按照日期顺序进行了排序。

结论

在Laravel中,我们可以使用sortby函数按照varchar和date进行排序。我们只需要将字符串和日期转化为集合,并指定键即可。