![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
質問があります。
ゴルフの結果の順位を表示したいと考えています。
----------------------------
$score['makoto'] = -6;
$score['yuko'] = -2;
$score['kenta'] = 0;
$score['hiroshi'] = 0;
$score['yuko'] = 3;
----------------------------
<出力結果>
第1位:-6
makotoさん
第2位:-2
yukoさん
第3位:0
hiroshiさん
kentaさん
第5位:3
yukoさん
-----------------------------------------
名前の重複はあります。
ゴルフの結果なのでマイナスが大きい人が
順位が高いくなります。
また同じスコアの人は名前をソートして、
次の順位は変わります(3位→5位)
どうか宜しくお願いいたします。m(_ _)m
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
配列ソート関数は元々あるので
順位の付け方の部分の参考例を書きます。
$score = array(
'yuko1' => -2,
'yuko2' => 3,
'kenta' => 0,
'makoto' => -6,
'hiroshi' => 0
);
asort($score);
$num = 0;
$i = 1;
$prev = -100;
foreach($score as $name => $point) {
if($point != $prev) {
$prev = $point;
$num = $i;
}
echo "第{$num}位 : {$point}\n";
echo "{$name}さん\n";
++$i;
}
No.4
- 回答日時:
こんにちは。
PHPは、やりはじめて日が浅いんで、
外してるかも知れんが、こんな感じ?
$Name と $Score はそれぞれ対応する名前と点数で。
<?php
$Name=array("yuko","kenta","makoto","hiroshi","yuko");
$Score=array(-2,0,-6,0,3);
array_multisort($Score,SORT_ASC,SORT_NUMERIC,$Name,SORT_ASC,SORT_STRING);
print("第1位:".$Score[0]."<br>".$Name[0]."さん<br>");
for($i=1;$i<count($Name);$i++){
if($Score[$i] != $Score[$i-1]){
print("第".($i+1)."位:".$Score[$i]."<br>");
}
print($Name[$i]."さん<br>");
}
?>
No.3
- 回答日時:
> マイナスが大きい人が順位が高い
は問題無いのでは。関数が用意されていると思いますし、逆順にすればいいだけの話で。
重複名があるというのは仕様上問題があるのでは。プレーヤーIDを与えるなど名前とは別に一意な識別名を用意するべきです。
で、ソートですが私は勉強不足でアルゴリズム等は存じておらずこの手の方法しか考えつかないのですが、
1. スコアが同じユーザー同士を括ってグループとして分類する
2. グループ内のソートを行う
3. グループのソートを行う
4. グループの人数を評価して順位付けを行う
規模が示されていないので何とも言えませんが SQL やコーディングから工夫すればそれなりに使える速さで組めると思います。
No.2
- 回答日時:
結構複雑ですね。
1.名前のソート
2.点数のソート
3.順位付け
4.印刷
ソートは単純なバブルソート(隣接交換法)がいいでしょう。
EXCELなら似たことは簡単にできるのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- 統計学 テストの順位についてです 今回のテストの順位を知りたいのですが、できますでしょうか?今回は僕の学年は 4 2022/11/30 19:15
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- 政治学 【 公共 衆議院の比例代表制 】 衆議院の比例代表順位名簿は、 各政党が前もって決定しているため、 3 2022/06/30 17:40
- 経済 日本の世界競争力が34位ですね。 ヨーロッパが出した統計なのでヨーロッパが有利にされてるとは思うんで 3 2022/07/25 10:43
- 高校 こちらの問題がわからなくて、教えて欲しいです、、、、 ナポレオン 1 世の死により,皇位継承権は〔 2 2023/07/28 18:48
- 教育・学術・研究 日本の技術研究力は機関によって多少のズレがありますが、4〜5位くらいにいます。研究者への待遇が劣悪な 1 2022/08/15 22:36
- 世界情勢 ここ最近、日本は国際的地位の後退がありますが、バブル期に比べると低下したものの、G7にも入っています 8 2022/08/13 19:18
- 関東 関東地方(一都六県)を栄えている順で順位付けするなら 1位東京 2位神奈川 3位千葉 4位埼玉 5位 4 2023/08/21 10:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
phpとmysqlで「あいまい検索」...
-
順位をつけたいです。
-
NGワード設定もしくはテキス...
-
$_SESSIONに二次元配列を使える...
-
PHPからCSVをアップロード後、m...
-
C言語でCSVファイルの行数を読...
-
cakephpでのトランザクション処...
-
別ファイルの構造体の値を読み...
-
C言語で全角文字の扱いについて
-
STLのvectorで作った配列をメン...
-
php で1から100までの素数の表...
-
マッチング処理(1:N)
-
foreachの実行結果について
-
Resource id #3 と表示されま...
-
$_POSTを一括してサニタイズし...
-
ネストが深い時のforeachはどう...
-
ヒアドキュメントの中のfor文
-
parse_ini_file関数について
-
PHPで配列をPOSTデータで送った...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
phpとmysqlで「あいまい検索」...
-
PHP5の外部コマンド実行で、バ...
-
「ローマ字 -> ひらがな」へPHP...
-
Mysqlとphpでソートや更新時の...
-
PEAR・MDB2のモジュールロード...
-
HTTPのメッセージボディについ...
-
数学の「組み合わせ」を求める...
-
順位を付ける時のスコアの重複...
-
Zend_Form_Element_Hash
-
日付から順にデータを並び替えたい
-
占いのPHPを作成中ですが・・・
-
しりとり 無限ループ?
-
選択日と終了日を配列で取得したい
-
多次元配列のカウント+1の仕方
-
mysqlにinsertするとエラーがで...
-
$xml要素を階層指定して取得し...
-
サイト名を取得するPHP
-
要素(文字列)から指定値を検索
-
月一覧を取得するには?(20120...
おすすめ情報