From: Duane Johnson Date: 2006-12-21T07:24:31+09:00 Subject: Re: tricky sort for happy visitors of Paris ------=_Part_34860_18689788.1166653468354 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline paris = (1..20).map {|i| "Paris #{i}"}.sort => ["Paris 1", "Paris 10", "Paris 11", "Paris 12", "Paris 13", "Paris 14", "Paris 15", "Paris 16", "Paris 17", "Paris 18", "Paris 19", "Paris 2", "Paris 20", "Paris 3", "Paris 4", "Paris 5", "Paris 6", "Paris 7", "Paris 8", "Paris 9"] paris.sort_by { |a| a.to_s.split.map{ |w| "%05d" % w rescue w } } => ["Paris 1", "Paris 2", "Paris 3", "Paris 4", "Paris 5", "Paris 6", "Paris 7", "Paris 8", "Paris 9", "Paris 10", "Paris 11", "Paris 12", "Paris 13", "Paris 14", "Paris 15", "Paris 16", "Paris 17", "Paris 18", "Paris 19", "Paris 20"] [1, 2, 3, "One", "Two", "Three", "Paris 1", "Paris 11", "Paris 10", "Paris 9", "Rome", "Rome 1", "Rome 2"].sort_by { |a| a.to_s.split.map{ |w| "%05d" % w rescue w } } => [1, 2, 3, "One", "Paris 1", "Paris 9", "Paris 10", "Paris 11", "Rome", "Rome 1", "Rome 2", "Three", "Two"] -- Duane Johnson (canadaduane) ------=_Part_34860_18689788.1166653468354--