多数据排序系统

Ranking system for multiple data

大家好,我正在实施自行车排名系统,我想计算骑手在其他人中的排名,这是我的示例table:

结果table

id     rider_id     point

1       2           100
2       2           50
3       5           200
4       5           60

我怎样才能根据每个骑手的总分获得他们的 POSITION 我试过这段代码,但无法获得索引作为位置!

      $result=Result::orderBy('point', 'desc')->get();
        $Rider=$result-> groupBy('rider_id')
            ->map(function ($row) {
                return $row->sum('point');
            });

上面的代码给出了这个输出:

{
"5":260,
"1":150
}

好的,那位置呢?我需要我认为的索引? rider_id 1 的排名是多少?

我想我是通过一个复杂的代码弄明白的! 我将结果转换为 Array() 并应用此代码:

array_search($id, array_keys($user)) + 1 ;

我很确定这不是 Laravel 优化代码 我想我会用得更好 collection 喜欢 SEARCH ! 任何想法!