x = [[1,1,3], [1,2,3], [2,1,3]]
y = x.map {|a| {a[0]=> [a[1], a[2]]}}
Редактировать
На самом деле мое первоначальное решение было неверным, оно дает вам:
[{1=>[1, 3]}, {1=>[2, 3]}, {2=>[1, 3]}]
Я считаю, что это ближе к тому, что вы искали:
x = [[1,1,3], [1,2,3], [2,1,3]]
h = {}
x.each do |a|
if h[a[0]].nil?
h[a[0]] = []
end
h[a[0]] << [a[1], a[2]]
end
, который дает вам хэш массивов:
{1=>[[1, 3], [2, 3]], 2=>[[1, 3]]}