WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:用語の並び替えについて

けんじ [WriteDate : Mon May 14 23:13:31 2001]

自分で登録して、表示する
用語集のCGIを作っているのですが、
以下のようなログの中身になっているんですけど、
そのログがあって、
($no,$yougo,$imi) = split(/<>/)
でそれぞれわけて、
foreachなどのループ関数で
$yougoをあいうえお順に並べ替えて表示したいんですけど、
sortを使おうと思っても、うまくいかないんですが、
どなたか解決方法ありますか?

---[log]---
1<>用語1<>意味<>
2<>用語2<>意味<>

    :
    :

100<>用語100<>意味<>
-----------


Nobu3 [MAIL] [URL] [WriteDate : Mon May 14 23:45:04 2001]

ソートってリストに対して行なうものでは?


酢 [WriteDate : Mon May 14 23:56:26 2001]

「配列の2項目目でのソートをしたい」という意味なら
http://www.din.or.jp/~ohzaki/perl.htm#SortST
など…


けんじ [WriteDate : Wed May 16 13:05:04 2001]

やってみようとしたんだけど
なんか読んでてもぜんぜんわからないんだけど…。


Nobu3 [URL] [WriteDate : Fri May 18 01:48:47 2001]

一応訊くけど、Perlでいいの?

http://www.din.or.jp/~ohzaki/perl.htm#SortST
でいうところの「@data」というのは
@data = <LOG>;
な感じで読みこんでおく。
中身を具体的に書けば
$data[0]は「1<>用語1<>意味<>」
$data[1]は「2<>用語2<>意味<>」
$data[99]は「100<>用語100<>意味<>」

で、今の場合「第2項」は同じで、区切り文字が「,」じゃなくて「<>」なので
split /,/

split /<>/
に変更すればそのまま使える。はず。

http://www.din.or.jp/~ohzaki/perl.htm#SortST の「<>」版。
@tmp = map {(split /<>/)[1]} @data;
@data = @data[sort {$tmp[$a] <=> $tmp[$b]} 0 .. $#tmp];

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World