A.each_key.do |key_a|
if B.has_key?(key_a) then
C[key_a] = [ A[key_a], B[key_a] ]
end
end

だった
ハッシュのキー指定の [ ] と 配列の [ ] が混じってわけわからん状態になってるが