プロが教えるわが家の防犯対策術!

質問致します。例えばボーリングのスコアを順位をつけて並べたいのですが、参考ページ(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さん 

A 回答 (2件)

$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;
}
}

汚くて済みませんが、一応これでいけると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/09/25 21:07

$rank=-1;


for($i=0;$i<count($Name);$i++){
if($Count[$rank] != $Count[$i]) $rank = $i;
print("第".($rank + 1)."位:".$Count[$i]." ".$Name[$i]."\n");
}
    • good
    • 2
この回答へのお礼

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

お礼日時:2006/09/25 21:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!