在ruby中排序多维数组

我有以下数组:

[["2010-01-10", 2], ["2010-01-09", 5], ["2009-12-11", 3], ["2009-12-12", 12], ["2009-12-13", 0]]

我只想按每组中的第二个值对其进行排序并返回最高值,就像我希望输出为12而上面给定的输入。

更新

我可能会补充一点,我使用to_a从一个哈希to_a它变成一个数组,所以如果要用哈希做同样的事情会更好。

在你的哈希上使用它:

 hash.values.max 

如果您只需要最高元素,则无需对其进行排序!

按第二个值排序

 x=[["2010-01-10", 2], ["2010-01-09", 5], ["2009-12-11", 3], ["2009-12-12", 12], ["2009-12-13", 0]] x.sort_by{|k|k[1]} => [["2009-12-13", 0], ["2010-01-10", 2], ["2009-12-11", 3], ["2010-01-09", 5], ["2009-12-12", 12]] 

在哈希上调用sort方法对其进行排序。

 hash = hash.sort { |a, b| b[1] <=> a[1] } 

然后将您的哈希值转换为数组并提取第一个值。

 result = hash.to_a[0][1] 

如果您希望键值对具有最大值:

 hash.max_by {|key, val| val} # => ["2009-12-12", 12] 

需要Ruby 1.8.7+