通过另一个数组对laravel集合进行排序

时间:2018-08-31 11:26:19

标签: php laravel laravel-5.5

我想按ID对集合进行排序,其中ID存储在自定义数组中。

我正在做这样的事情:

return Socialite::driver('facebook')->scopes(['email','user_gender'])->redirect("https://mywebsite.com?parameter1={$p1}&parameter2={$p2}");

对数组幻灯片进行排序,但是..问题是我失去了$ allSlides集合中的分页和其他内容。

如何使用带有id的自定义数组对幻灯片集合进行排序?

1 个答案:

答案 0 :(得分:1)

$slideOrderSetting中获取所有ID:

$slideOrderArray = json_decode($slideOrderSetting, true);
$slideOrderIDs = collect($slideOrderArray)->pluck('id')->toArray()

About pluck()方法

然后获取幻灯片:

$slides = DB::table('homepage_slides')
    ->orderByRaw(DB::raw('FIELD(id, '.implode(', ', $slideOrderIDs).')'))
    ->paginate(10)

$slides = DB::table('homepage_slides')
    ->whereIn('id', $slideOrderIDs)
    ->orderByRaw(DB::raw('FIELD(id, '.implode(', ', $slideOrderIDs).')'))
    ->paginate(10)