Php 根据总分获得单个学生的排名(位置)
我想根据所有科目的总分显示单个学生的“排名”或“位置” 例如,如果一个学生的总分最高为99分,那么它应该返回排名第一的成绩。 另一名92分的学生应返回第二名。 如果两名学生的分数相同,均为90分,则应返回第三名 我不想把它们放在一张桌子里,只是一个显示器 这是我的问题 型号: 控制器:Php 根据总分获得单个学生的排名(位置),php,mysql,codeigniter,Php,Mysql,Codeigniter,我想根据所有科目的总分显示单个学生的“排名”或“位置” 例如,如果一个学生的总分最高为99分,那么它应该返回排名第一的成绩。 另一名92分的学生应返回第二名。 如果两名学生的分数相同,均为90分,则应返回第三名 我不想把它们放在一张桌子里,只是一个显示器 这是我的问题 型号: 控制器: public function GetClassPosition($student_id, $session_id, $section_id, $class_id) { $data = $this-
public function GetClassPosition($student_id, $session_id, $section_id, $class_id)
{
$data = $this->primary_model->GetClassPosition($student_id, $session_id, $section_id, $class_id);
return $data->tot_score;
}
序号:
function mtordinal($number)
{
$ends = array('TH','ST','ND','RD','TH','TH','TH','TH','TH','TH');
if ((($number % 100) >= 11) && (($number%100) <= 13))
return $number. 'th';
else
return $number. $ends[$number % 10];
}
函数mtordinal($number)
{
$ends=数组('TH','ST','ND','RD','TH','TH','TH','TH','TH','TH','TH','TH','TH');
如果(($number%100)>=11)和($number%100)
显然,这会以列表形式显示结果。如何仅显示每个学生的职位?显示“echo$CI->ordinal($number)”的示例数据……它的显示方式如下-第一、第二、第十三等
function mtordinal($number)
{
$ends = array('TH','ST','ND','RD','TH','TH','TH','TH','TH','TH');
if ((($number % 100) >= 11) && (($number%100) <= 13))
return $number. 'th';
else
return $number. $ends[$number % 10];
}
<?php
$scores2 = $CI->GetClassPosition($value->$student_id, $value->session_id, $value->section_id, $value->class_id);
$scores = array_column($scores2, 'tot_score');
$pos = array_search($value->tot_score, $scores);
$number = $pos + 1;
echo $CI->ordinal($number);
?>