• ベストアンサー

順位を付ける時のスコアの重複について

質問致します。例えばボーリングのスコアを順位をつけて並べたいのですが、参考ページ(http://oshiete1.goo.ne.jp/kotaeru.php3?q=561384)を元に以下の様に書いてみました。 ---------------------------------------- <?php $Name=array("Aさん","Bさん","Cさん","Dさん","Eさん","Fさん"); $Count=array(123,198,123,117,123,202); array_multisort($Count,SORT_DESC,SORT_NUMERIC,$Name,SORT_DESC,SORT_STRING); print("第1位:".$Count[0]." ".$Name[0]."<br>"); for($i=1;$i<count($Name);$i++){ if($Count[$i] != $Count[$i-1]){ print("第".($i+1)."位:".$Count[$i]." "); } print($Name[$i]."<br>"); } ?> ------------------------------------------------ しかしながら以上を実行してみますと順位の表示のされ方がうまくいきません。うまくいかない箇所はスコア(123)が3人並んだ場合に以下のようにしたいのですが、ならなくて苦闘しております。どのように書換えればよろしいのでしょうか。アドバイス頂ければと存じます。よろしくお願い致します。 第1位 202 Fさん 第2位 198 Bさん  第3位 123 Aさn 第3位 123 Cさn 第3位 123 Eさん 第6位 117 Dさん 

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

$rank=1; for($i=0;$i<count($Name);$i++){ print("第".$rank."位:".$Count[$i]." ".$Name[$i]."<br>"); if($Count[$i] != $Count[$i+1]){ $rank=$i+2; } } 汚くて済みませんが、一応これでいけると思います。

php1234
質問者

お礼

ありがとうございました。バッチリです。また何かございましたら宜しくお願い致します。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

$rank=-1; for($i=0;$i<count($Name);$i++){ if($Count[$rank] != $Count[$i]) $rank = $i; print("第".($rank + 1)."位:".$Count[$i]." ".$Name[$i]."\n"); }

php1234
質問者

お礼

ありがとうございました。バッチリです。また何かございましたら宜しくお願い致します。

関連するQ&A