create an array from a hash that includes key and value

Hello there, I have the hash:

@hash = {"a"=>"1", "b"=>"2", "c"=>"3"}

And I need to create an array:

@array = [ ['a','1'],['b','2'],['c','3'] ]

How do I do that?

Paco Reyes


Hi --

   @array = @hash.to_a

   @array = @hash.to_a.sort

depending on whether the order matters. A Hash (in Ruby 1.8.6 and earlier) is inherently unordered and the conversion to an array gives elements in the same order that @hash.each would yield them.


Rob Biedenharn

Could I ride this thread with a short variation? I have a zillion
dropdowns in my project that ask users what code they should choose.
As a ficticious example they'd be asked what day of the week ( 1 -
Sunday, 2 - Monday, 3 - Tuesday, etc. )
I'd like to simply create this as an array and pass it to my
collection_select helper. This would save me having to create another
model and migration.
What throws me is that the first member of an array has a zero 0 key
and I want it to be one 1.
Could someone show me the simple way to load an array with key - value
combinations that starts with one 1.
Thank you,