• ベストアンサー

ruby 1.8.7 で、多次元配列をソートする

ruby 1.8.7 で、下記のような配列をソートしたいんですが、どう記述したら良いでしょうか。 x = [[1, 1], [2, 2], [11, 10], ・・・ [1, 13], [2, 14]] ..........a b a = 1番目の ソート 順 b = 2番目の ソート 順       よろしくお願いします。

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

  • ベストアンサー
  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

例で挙がっている配列なら x.sort でいいんじゃね?

ok_nori_ok
質問者

お礼

補足の欄で不可能と書いたんです、が、貴方の方法で、出来ました。 申し訳ありません。 正解はもっと複雑な方法だろうと、勝手に思い込んで、別のをメッセージを投稿してしまいました。(koko_u_uさんに届くようにと) ありがとう御座います。

ok_nori_ok
質問者

補足

ANO.1さんではsort出来ません。

その他の回答 (4)

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.5

>[1, 1], [1, 13], [2, 2], [2, 14], ...です 結局、どんな仕様なのか誰にも伝わっていません。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.4

#2です。 >1番目とは、[1,1],[2,2]各々の1番目の1,2,11,・・・1,2 >2番目とは、[1,1],[2,2]各々の2番目の1,2,10,・・・13,14  です。 >これが出来たら、わかり易いからうれしいです。 それで、期待する結果はどのようになりますか? x = [[9, 2],[9, 1], [2, 2], [11, 10],[1, 13], [2, 14]] p x y = x.sort() p y とした時の実行結果は [[9, 2], [9, 1], [2, 2], [11, 10], [1, 13], [2, 14]] [[1, 13], [2, 2], [2, 14], [9, 1], [9, 2], [11, 10]] ですが、それが期待する結果でしょうか? もし、違う場合は、その旨補足してください。

ok_nori_ok
質問者

補足

期待する結果は [1, 1], [1, 13], [2, 2], [2, 14], ...です。

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.3

> 本にはハッシュを作ってソートするようにとあったので、そちらでいきます。 そんなことしてると、その本に書いてないケースに遭遇した時に困るよ。 まずは Array のマニュアルを読むべきです。

参考URL:
http://doc.okkez.net/static/187/doc/index.html
ok_nori_ok
質問者

補足

素人にはRubyの本家は分かりません。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

質問の意味が良くわかりません。 a=1番目の ソート 順 b=2番目の ソート 順 の 1番目とは、[1,1]のことですか 2番目とは、[2,2]のことですか それとも 1番目とは、[1,1],[2,2]各々の1番目の1,2,11,・・・1,2 2番目とは、[1,1],[2,2]各々の2番目の1,2,10,・・・13,14 のことですか 上記の例では、どのような結果になることを期待されていますか? 期待する結果をご提示ください。

ok_nori_ok
質問者

補足

説明が不十分でした。 1番目とは、[1,1],[2,2]各々の1番目の1,2,11,・・・1,2 2番目とは、[1,1],[2,2]各々の2番目の1,2,10,・・・13,14  です。 これが出来たら、わかり易いからうれしいです。 しかし、本にはハッシュを作ってソートするようにとあったので、そちらでいきます。