- 締切済み
配列のソート
Ruby初心者です。 例えば [12,38,121,273,13] [23,47,478,112,98] [56,73,227,556,12] [22,43,668,223,74] [33,13,393,763,91] を [12,38,121,273,13] [22,43,668,223,74] [23,47,478,112,98] [33,13,393,763,91] [56,73,227,556,12] のように第1列目の要素で配列ごとソートしたいのですが、私がやると、 [12,13,38,121,273] [22,43,74,223,668] [23,47,98,112,478] [13,33,91,393,763] [12,56,73,227,556] のように第一列の要素は一応ソートは出来ているのですが、 配列の中身まで並べ変わってしまいます。 配列ごとにソートするにはどうすれば良いのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ki073
- ベストアンサー率77% (491/634)
回答No.1
array=[[12,38,121,273,13], [23,47,478,112,98], [56,73,227,556,12], [22,43,668,223,74], [33,13,393,763,91]] とした時に array.sort で期待通りになります。 array.sort_by{|a| a[0]} でも可能ですが、二列目以降を考慮せずにsortされます。 質問者さんの結果になるようにする方が難しそうに思います。
お礼
ありがとうございます。 まだまだ勉強が足りないようです。 2次元配列を使ってみたところ上手くソートできました。