From: Florian Kaufmann Date: 2009-04-20T18:16:19+09:00 Subject: Re: Hash merge question #!/usr/bin/ruby h1 = { :a1 => [:y1, :y2, :y3], :a2 => [:y4, :y5, :y6] } h2 = { :a2 => [:z1, :z2, :z3], :a3 => [:z4, :z5, :z6] } h = {} (h1.keys + h2.keys).each {|k| h[k] = [[],[]] } h = h1.to_a.inject(h) { |i,kv| i[kv[0]][0] = kv[1]; i } h = h2.to_a.inject(h) { |i,kv| i[kv[0]][1] = kv[1]; i } p h gives {:a2=>[[:y4, :y5, :y6], [:z1, :z2, :z3]], :a1=>[[:y1, :y2, :y3], []], :a3=>[[], [:z4, :z5, :z6]]}