OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ランキングリストを作りたいんですが・・・

  • すぐに回答を!
  • 質問No.239517
  • 閲覧数30
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 66% (4/6)

local($data) = @_;
$data =~ s/\n$//;
($name,$lv,$hp,$gp) = split(/,/,$data);
}
で、データを読み込んで、
<tr><td>$name</td><td>$lv</td><td>$hp</td><td>$gp</td></tr>\n";

という形で行ごとに出力しているんですが、これをきちんと並び替えて$lvの順に並ぶランキングリストを作りたいんです。

色々試してみたんですが、記録された順番のまま出力されてきたり、全然表示されなかったりでうまくいきません。

できるだけ初心者でも分かりやすい方法を教えてください。
よろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1

 こういうのはどうでしょう?
 @data には、

  $data[0] = "www,2,www,www";
  $data[1] = "www,1,www,www";
  $data[2] = "www,4,www,www";
  $data[3] = "www,3,www,www";

 というデータが入っているものとし、

foreach ( @data ) {
  ($name,$lv,$hp,$gp) = split(/,/,$_);
  $_ = "$lv,$name,$hp,$gp";
}
@data = sort { $a <=> $b } @data;
foreach ( @data ) {
  ($lv,$name,$hp,$gp) = split(/,/,$_);
  $_ = "$name,$lv,$hp,$gp";
}

 あまりスマートなロジックじゃないですけど、これで $lv 順になります。
 昇順と降順を入れ替えるときは sort 関数の $a と $b を逆にします。
(見栄えのためにタブ文字を全角スペースにしてますので、コピーペーストするときはご注意を)
お礼コメント
AKIRAGOO

お礼率 66% (4/6)

早速の御指導ありがとうございます。
教えて頂いたスクリプトを利用して、

  $data[0] = "www,2,www,www";
  $data[1] = "www,1,www,www";
  $data[2] = "www,4,www,www";
  $data[3] = "www,3,www,www";

の内容表示を、

local($data) = @_;
$data =~ s/\n$//;
foreach ( @data ) {
  ($name,$lv,$hp,$gp) = split(/,/,$_);
  $_ = "$lv,$name,$hp,$gp";
}
@data = sort { $a <=> $b } @data;
foreach ( @data ) {
  ($lv,$name,$hp,$gp) = split(/,/,$_);
  $_ = "$name,$lv,$hp,$gp";
}

としたんですが、何故か『$data[2]にはいってるデータ内容』だけが、$data[0]~$data[3] の分だけ出力されてしまいました・・・。
うまく説明できないんですが、
  $data[2] = "www,4,www,www";
  $data[3] = "www,3,www,www";
  $data[0] = "www,2,www,www";
  $data[1] = "www,1,www,www";
の順に出すはずが、出力されたのが
$data[2] = "www,4,www,www"
$data[2] = "www,4,www,www"
$data[2] = "www,4,www,www"
$data[2] = "www,4,www,www"
になってしまったんです。
どこを修正したらよいのか教えて頂けないでしょうか?
よろしくお願いします。
投稿日時 - 2002-03-23 21:22:23
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ