【发布时间】:2020-07-13 16:37:11
【问题描述】:
我是 Laravel 的新手。现在,我很难根据学生的总分从高到低对学生的名字进行排序。以下是我从邮递员那里得到的数据。
{
"score": [
{
"name": "Adam",
"sex": "male",
"totalMarks": 250
},
{
"name": "Lisa",
"sex": "female",
"totalMarks": 350
},
{
"name": "Daniel",
"sex": "male",
"totalMarks": 300
},
{
"name": "Mary",
"sex": "female",
"totalMarks": 330
},
{
"name": "Sarah",
"sex": "female",
"totalMarks": 280
}
]
}
下面是我的 ScoreController.php 代码
$class_id = $user->class->id;
$students = Students::whereIn('class_id', $class_id)->get();
$score = array();
foreach ($students as $student) {
array_push($score, [
'name' = $student->name,
'sex' = $student->sex,
'totalMarks' = $student->subjects->sum('mark'),
]);
}
return response()->json([
'score' => $score,
]);
我想根据mark 的总和对学生进行排序。所以totalMarks 最高的学生应该在列表的顶部。提前谢谢你。
【问题讨论】:
-
我相信
array_multisort(array_column($score,'totalMarks'), SORT_DESC, $score);会成功 -
@FelippeDuarte 我应该在哪里插入该代码?是在
foreach里面吗?
标签: php laravel sorting eloquent