a = [["Rick Ashley", "2.5"], ["Cher", "2.5"], ["Rick Ashley", "3.7"], ["Cher", "3.3"]] a.inject({}) { |result, array| result[array[0]] ||= []; result[array[0]] << array[1]; array[1]; result }.to_a.map{ |x| x.flatten} => [["Rick Ashley", "2.5", "3.7"], ["Cher", "2.5", "3.3"]]