【发布时间】:2021-06-27 19:50:10
【问题描述】:
我正在寻找一种方法来对集合进行排序,使以字母开头的名称位于顶部,然后是以数字开头的名称。例如:
$collection = collect([
['name' => 'b', 'symbol' => '#'],
['name' => '2a', 'symbol' => '$'],
['name' => '1', 'symbol' => '@'],
['name' => 'a', 'symbol' => '%']
]);
上面的集合应该是这样排序的:
[
[
"name" => "a",
"symbol" => "%",
],
[
"name" => "b",
"symbol" => "#",
],
[
"name" => "1",
"symbol" => "@",
],
[
"name" => "2a",
"symbol" => "$",
],
]
但这就是我使用sortBy 方法对其进行排序时得到的结果:
$collection->sortBy('name')->values()->all();
[
[
"name" => "1",
"symbol" => "@",
],
[
"name" => "2a",
"symbol" => "$",
],
[
"name" => "a",
"symbol" => "%",
],
[
"name" => "b",
"symbol" => "#",
],
]
知道如何对该集合进行排序,以便以字母开头的名称排在第一位。谢谢
【问题讨论】:
标签: php laravel laravel-collection