From: Johannes Friestad Date: 2005-12-02T18:18:57+09:00 Subject: Re: ruby one-liner needed I'm sure there are many ways to do it, here's one: a=[3,4,5,6] b=%w{three four five six seven} res={} a.length.times {|i| break if i>=b.length; res[a[i]]=b[i]; } It handles the situation where either array is shorter than the other. jf On 12/2/05, Kev Jackson wrote: > Here's one taht I know is possible (I'm sure I've seen it somewhere before) > > I have 2 arrays and I'd like to change them into a Hash > stuff = ["1", "2", "3"] > Item.column_names.each { |column_name| new_item[column_name] = stuff[?] } > > The problem is how to index within the block to move along the stuff > array, and how to deal with the fact that most of the time the stuff > array is shorter than the column_names array > > I'm sure using collect, map of something else ruby-ish that this is more > than possible, but I can't find a solution right now > > Kev > > -- Johannes Friestad johannes.friestad@gmail.com