我一直在努力爭取一些複雜的排名系統。排名取決於學生獨立於分數的分數。點計算對我來說沒問題。問題出現在打破關係時,因爲這取決於完全不同的學生標記。學生可以有相似的分數,但分數有所不同,可以用來打破平局,以防一些學生在積分上打分。我需要幫助,因爲我卡住了。請參考我的照片以獲得一個粗略的想法,並告訴我是否可以完成。我還包括了一些我的代碼。php中的複雜排名
<?php
$rank_by_point=array();
//loop out students and get their admission number from which you calculate individual points based on an algorithm
foreach($students as $student => $student_no){
array_push($rank_by_point[$student_no],calculatePoints($student_no));
}
//sorting the points from highest to lowest
arsort($rank_by_point);
//the ranking code down here
$ties=array();
$break=array();
$initial_positions=array();
$rank = 0;
$last = false;
foreach($rank_by_point as $key => $value){
if($last != $value){
$last = $value;
$rank++;
}else{
//when a tie is detected add the values to a tie array
array_push($ties[$key],$rank);
}
array_push($initial_positions[$key],$rank);
}
//spliting of ties is done by getting marks and rearrangin the tie
foreach($ties as $admno => $st_rank){
$read_position=$rank;//same value for all keys in the ties array
$getmarks=getMarks($admno);
array_push($break[$admno],$getmarks);
//reorder the array in desc order
arsort($break);
}
//reranking the ties. i got stuck here :-(
?>
你好。在使用分數進行排名時,關聯使用標記來打破。我確實嘗試了代碼的修改版本,但訂購那些綁定了 –
的訂單時仍存在問題。 – Barmar