人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ruby の
[[”2004:09:21:00:00:00”, ”3”, ..],
[”2004:09:21:00:00:00”, ”4”,...],
[”2004:09:22:00:00:00”, ”2”,...], ...
]
のような配列があります。この配列をまず0番目の要素 (”2004:09:22:00:00:00” のような形式の日付)で昇順にソートし、かつ、同日付でソートされた結果を崩さずに、2番目のソートキーとして1番目の要素 (”3”や ”4”のような文字列)で降順にソートするにはどのような式を用いれば良いでしょうか?

●質問者: minakaji
●カテゴリ:コンピュータ
✍キーワード:00 Ruby ソート 文字列 配列
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● dekodeko
●30ポイント

http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Array

Array - Rubyリファレンスマニュアル

しばらくRubyから遠ざかっていたのと、いまRubyを実行できる環境にいないのであんまり自信ないんで、ポイントはいいです。

こんなのはどうでしょう。

a.sort{|a,b|

v = a[0] <=> b[0]

if(v == 0)

v = a[1] <=> b[1]

end

return v

}

◎質問者からの返答

残念ながら日付のソートが崩れてしまいます。


2 ● zarchis
●35ポイント

http://www.google.co.jp/

Google

urlはダミーです。

ちょっと考えましたがRuby知らないんで、適当。

Array.sortという関数使えばなんとでもなりそうなので、記述しま。

そういう配列が入ったオブジェクトをoとします

o.sort{ |x,y|

gap = x[0] - y[0] #1つめの要素の比較

if gap == 0

gap = y[1] - x[2] #2つめの要素の比較

end

gap

}

比較部分テキトーですが、こんな感じのノリのコードになるかと。


3 ● zarchis
●5ポイント

http://www.asahi-net.or.jp/~rc4t-ishr/kensiro.html

ケンシロウ進数

urlはダミです(ケンシロウ進数)

追記。

要素の比較を文字列として比較しているので、

ちょっとユルい感じもします。ハィ(´・ω・)

最初の要素はDateオブジェクトに変換してから

比較のほうがいいかも?

Dateクラスあるか知らないし、変換タイヘンかもだけど。


4 ● Radomu
●0ポイント

http://www14.big.or.jp/~hosoya/who/o/ohara-reiko.htm

ウルトラシリーズ俳優人名録 大原麗子

はい!?

◎質問者からの返答

無関係。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ