From: 7stud -- Date: 2011-05-15T06:28:57+09:00 Subject: Re: search nearest to elements in array (hash) data = [1.1, 4.2, 3.1, 2.6, 6.1, 5.0] needle = rand 10 arr = data.map do |num| [(num - needle).abs, num] end sorted = arr.sort_by {|sub_arr| sub_arr[0]} puts needle puts sorted.first[1] --output:-- 2 2.6 -- Posted via http://www.ruby-forum.com/.