你可以先使用数据库sql进行查询排序sort
例如
$users = User::query()->orderByDesc('sort')->get()->toArray();
查询出后进行数据二次处理
例如
# 分组取出两样数据
# 也可以使用 groupBy
list($itemBySort, $itemByCount) = collect($users)->partition(function ($item) {
return $item['sort'] != null;
});
# 二次排序
$itemByCount = usort($itemByCount, function ($current, $next) {
return ($current['count'] > $next['count']) ? -1 : 1;
});
$users = $itemBySort + $itemByCount;
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…