Laravel 排序集合

示例

有几种不同的方式对集合进行排序。

Sort()

该sort方法对集合进行排序:

$collection = collect([53124]);

$sorted $collection->sort();

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

returns : [12345]

该sort方法还允许使用您自己的算法传递自定义回调。在幕后排序使用php的usort。

$collection $collection->sort(function ($a$b{

    if ($a == $b) {

        return 0;

    }

    return ($a $b) ? -1 : 1;

});

SortBy()

该sortBy方法按给定键对集合进行排序:

$collection = collect([

['name' => 'Desk''price' => 200],

['name' => 'Chair''price' => 100],

['name' => 'Bookcase''price' => 150],

]);

$sorted $collection->sortBy('price');

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

returns:  [

        ['name' => 'Chair''price' => 100],

        ['name' => 'Bookcase''price' => 150],

        ['name' => 'Desk''price' => 200],

    ]

该sortBy方法允许使用点表示法格式来访问更深的键,以便对多维数组进行排序。

$collection = collect([

    ["id"=>1,"product"=>['name' => 'Desk''price' => 200]],

    ["id"=>2"product"=>['name' => 'Chair''price' => 100]],

    ["id"=>3"product"=>['name' => 'Bookcase''price' => 150]],

    ]);

$sorted $collection->sortBy("product.price")->toArray();

return: [

  ["id"=>2"product"=>['name' => 'Chair''price' => 100]],

  ["id"=>3"product"=>['name' => 'Bookcase''price' => 150]],

  ["id"=>1,"product"=>['name' => 'Desk''price' => 200]],

]

SortByDesc()

此方法与该方法具有相同的签名sortBy,但是将以相反的顺序对集合进行排序。

以上是 Laravel 排序集合 的全部内容, 来源链接: utcz.com/z/315831.html

回到顶部