■8366 / ) |
Re[2]: キーワード検索+ソートするには・・・
|
□投稿者/ hiro -(2004/01/08(Thu) 10:18:05)
| ■No8362に返信(りゅういちさんの記事) > ■No8359に返信(hiroさんの記事) > > $dat の内容にもよりますが、Perlには sort という便利な関数があるので > それを使うと良いと思います。 > > 例えば上記の print; というところで検索結果を表示しているわけですから、 > ここで、$dat を先頭にして新しい配列に入れちゃいます。 > print; → push(@Sort,"$dat<>$_"); > でそのあと、 @Sort=sort(@Sort); として、 > forreach (@Sort){ > ($dat,$no,$mae,$ato,$mid,$com,$dat2,$p1,$p2,$p3,$s2,$s3) = split(/<>/); > print; > } > とすればいけそうな気がします。
りゅういちさん、さっそく教えていただきありがとうございます。 記述して試してみました。 結果は、ソートされて出力されるのですが、 以下のようになりました。 [$no...$s3]のデータのセットのうち、 まず、$no(=登録ナンバー)の1のセットが出力され、 次に、$no=2までのセットが$datの項目でソートされて出力、 次に、$no=3までのセットがソートされて出力、 と続き、最後に検索キーワードとマッチしたデータセットがソートされて出力されます。 きっと、foreachのループ処理の問題かと思いますが、 いろいろ試してみても解決できません。 この最後のデータセットだけ取り出して出力するにはどうしたらいいのでしょうか。 また、$datのデータは数値(整数)で、この方法の場合、降順にソートするにはどうすればできますか。 アドバイスいただけることがあれば、よろしくお願いします。(hiro)
|
|