這是記分板的簡化的代碼。我想建立的是自動排序本身總分和分配的1等級的最低分數和增量從那裏,直到每個人都有一個等級排名最高的表。如果2人有相同的分數,那麼排名將是T,然後是數字。下面動態評分表
<?php
$sql_score = $mysqli->query("SELECT * from event_scoreboard WHERE workoutid = '$work_out[$workout_counter]'");
$rowcount1=mysqli_num_rows($sql_score);
$array = array();
while($objscore = $sql_score->fetch_object()) {
$score = $objscore->score;
$total_score += $score * 3;
}
$values = array($total_score);
$ordered_values = $values;
echo rsort($ordered_values);
foreach ($values as $key => $value) {
foreach ($ordered_values as $ordered_key => $ordered_value) {
if ($value === $ordered_value) {
$key = $ordered_key;
break;
}
}
echo $value . '- Rank: ' . ((int) $key + 1) . '<br/>';
}
?>
測試代碼工作正常,但我們如何可以通過插入從而條件那些輸出到多陣列維離 實現相同的輸出。 $ values = array($ total_score);
現在,我在下面得到這個輸出。它只顯示數組索引['0'],這就是爲什麼在所有輸出中Rank是1的原因。
13087 - Rank: 1
11029 - Rank: 1
110359 - Rank: 1
17035 - Rank: 1
19702 - Rank: 1
1702 - Rank: 1
196 - Rank: 1
19 - Rank: 1
110266 - Rank: 1
工作實例顯示基於分數排名(目前DESC,但它需要在ASC順序 - 最低得分將是排名1#)
$values = array();
$values[0] = 13389;
$values[1] = 71298;
$values[2] = 234;
$values[3] = 9069;
$values[4] = 9936;
$values[5] = 2673;
$values[6] = 234;
$values[7] = 234;
$values[8] = 11634;
$values[9] = 1470;
$ordered_values = $values;
echo rsort($ordered_values);
foreach ($values as $key => $value) {
foreach ($ordered_values as $ordered_key => $ordered_value) {
if ($value === $ordered_value) {
$key = $ordered_key;
break;
}
}
echo $value . '- Rank: ' . ((int) $key + 1) . '<br/>';
}
這有一定道理,但之前,我可以解決這部分沒有任何人有我與多維數組遇到的問題有任何意見?它的一切都回歸一級。 – ocwebmaster
您在我的答案中看到的輸出是帶有您的代碼的輸出,但將'rsort'更改爲'sort'除外。 –