The following occurs ...

irb(main):001:0> a = Array.new(3, Array.new(3))
[[nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]
irb(main):002:0> a[1][1] = 0
0
irb(main):003:0> a
[[nil, 0, nil], [nil, 0, nil], [nil, 0, nil]]

.... however I would have expected (and hoped for) ...
[[nil, nil, nil], [nil, 0, nil], [nil, nil, nil]]

Pragmatists _have_ warned me that "select isn't broken" :)

Yours

Chris Reay