From: Rodrigo Bermejo Date: 2008-03-11T01:47:18+09:00 Subject: Re: Sort hashes using values Subbu wrote: > Ruby automatically sorts hashes by keys, which means: > >>> h = {"first"=>2,"second"=>1,"third"=>3} > => {"third"=>3, "second"=>1, "first"=>2} > > How do I sort this by the values? So that I have: > {"second"=>1, "first"=>2, "third"=>3} -------------> http://www.ruby-doc.org/core/classes/Hash.html hsh.sort => array hsh.sort {| a, b | block } => array Converts hsh to a nested array of [ key, value ] arrays and sorts it, using Array#sort. h = { "a" => 20, "b" => 30, "c" => 10 } h.sort #=> [["a", 20], ["b", 30], ["c", 10]] h.sort {|a,b| a[1]<=>b[1]} #=> [["c", 10], ["a", 20], ["b", 30]] -- Posted via http://www.ruby-forum.com/.