84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
生徒のスコアのランキングを作成します。スコアは配列になります。例: $scores = array(90,100,100); 自定义函数实现返回数组 $rank(3,1,1);
$scores = array(90,100,100)
$rank(3,1,1)
<?php
?>
これはあなたのニーズを満たすことができますが、質問があります。この 2 つはテストで 99 点を取った方が 2 位になるべきではないでしょうか。
質問者が望んでいるのは、元の配列の順番(紐付け可能)でランキングを表示することです。一般的な考え方は、元の配列に位置情報を追加し、並べ替えた結果に基づいてランキング配列を逆に構築することです。書き出すと少し長いです:
n位同率でn位の人が複数いる場合、次の人はn+1人目となりますので、質問者様の例とは少し異なりますのでご注意ください。アルゴリズム全体の複雑さのボトルネックはソートであり、O(n lgn) です。
PHP 独自の配列ソート関数を使用しますか?
http://www.php.net/manual/zh/...組み込みのデータ並べ替えで問題を解決できるはずです
まずこの配列をスコアで並べ替えてから、この配列を逆挿入します。あとはスコアに応じてキーを入手するだけです。
さらに: スコアはデータベースに書き込まれないため、順番に取り出されます
<?php
リーリー?>
これはあなたのニーズを満たすことができますが、質問があります。この 2 つはテストで 99 点を取った方が 2 位になるべきではないでしょうか。
質問者が望んでいるのは、元の配列の順番(紐付け可能)でランキングを表示することです。一般的な考え方は、元の配列に位置情報を追加し、並べ替えた結果に基づいてランキング配列を逆に構築することです。書き出すと少し長いです:
リーリーn位同率でn位の人が複数いる場合、次の人はn+1人目となりますので、質問者様の例とは少し異なりますのでご注意ください。アルゴリズム全体の複雑さのボトルネックはソートであり、O(n lgn) です。
PHP 独自の配列ソート関数を使用しますか?
まずこの配列をスコアで並べ替えてから、この配列を逆挿入します。あとはスコアに応じてキーを入手するだけです。
さらに: スコアはデータベースに書き込まれないため、順番に取り出されます