From: Brian Candler Date: 2010-08-10T21:48:22+09:00 Subject: Re: hash Dmitriy Makarov wrote: >> do you need a multivalue hash? >> {key => val1, val2, val3 ...} > > Yes (1) myhash = Hash.new { |h,k| h[k] = [] } myhash['key'] << 'val1' myhash['key'] << 'val2' myhash['key'] << 'val3' p myhash # {"key"=>["val1", "val2", "val3"]} p myhash['key'] # ["val1", "val2", "val3"] (2) myhash = Hash.new { |h,k| h[k] = {} } myhash['key']['val1'] = true myhash['key']['val2'] = true myhash['key']['val3'] = true p myhash # {"key"=>{"val3"=>true, "val1"=>true, "val2"=>true}} p myhash['key'].keys # ["val3", "val1", "val2"] The latter has the property that duplicate values are eliminated, and it's very quick to test for a particular value: if myhash['key']['val1'] ... etc end -- Posted via http://www.ruby-forum.com/.