アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在ポケモン図鑑を作っていまして、(^^;
下記のようなものが書かれたファイルを読み込んで表示しています。

・・・
25,ピカチュウ,でんき,6,
26,ライチュウ,でんき,30,
27,サンド,じめん,12,
・・・

1行ずつがそのポケモンのデータで、4つ目には「重さ」が入るようになっています。
それで、ポケモンをリスト表示してその中から選ぶようになっているんですけど、それを重さが重い順、あるいは軽い順にして表示するにはどうすればいいのでしょうか。

回答する気おきないと思いますが、
よろしくお願いします。

参考>http://poke.sub.jp/poke_cgi/web_poke/main.cgi

A 回答 (2件)

そ~いうリストが @cards という配列にあるとすれば,


@sorted_cards = sort { (split(/,/, $a))[3] < (split(/,/, $b))[3]; } @cards;
で昇順にソートできます.
    • good
    • 0
この回答へのお礼

原理が分かりませんでしたがすごいです!

ありがとうございました。

お礼日時:2005/09/14 22:45

sortのデフォルトは文字(バイナリ)ソートなので、


体重は数値としてソートした方がいいんじゃないかと・・

@pokemon_listにデータがあるとして・・

my @sorted_list = sort {
 # (*1)昇順の場合
 (split /,/, $a)[3] <=> (split /,/, $b)[3];
} @pokemon_list;

降順の場合は、(*1)が、
 (split /,/, $b)[3] <=> (split /,/, $a)[3];
となりまする。


ちなみに、[perl sort]でググると・・

参考URL:http://www.rfs.jp/sitebuilder/perl/05/func/sort. …
    • good
    • 0
この回答へのお礼

うーん・・
やってみましたが、よく分かりませんでした^^;No.1の方の回答を参考にさせていただきます。
でもお陰で降順の方法が分かりました。
ありがとうございました。

お礼日時:2005/09/14 23:02

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