Can anyone help me with ordering a hash that's being converted to an 
array.

As above I've followed Martin's suggestion and converted two array's 
into hashes, merged the hashes and I'm attempting to convert them back 
into an array. Current hash looks like this ...

[[1, 3]=>["X","20120609"], [3, 3]=>["X","20120610"], [2, 
1]=>["X","20120611"], [1, 2]=>["X","20120612"], [3, 
2]=>["X","20120613"], [3, 1]=>["X","20120614"], [1, 
3]=>["X","20120615"], [2, 1]=>["X","20120616"], [2, 
2]=>["X","20120617"]]

As you can see the x, y coordinates are in a random order and I need to 
convert the above hash back into an array that looks like this ...

[[1, 3, "X","20120609"], [2, 3, "X","20120610"], [3, 3, "X","20120611"], 
[1, 2, "X","20120612"], [2, 2, "X","20120613"], [3, 2, "X","20120614"], 
[1, 1, "X","20120615"], [2, 1, "X","20120616"], [3, 1, "X","20120617"]]

Basically I need to order the x coordinate first in ascending order and 
the y coordinate second in descending order.

The command I've mucked around with that Martin posted above is ...

c = hash1.keys.sort.map {|k| [k[0],k[1]] + hash1[k]}

... but that's giving me y coordinates ordered first in ascending order 
and x coordinates ordered second in ascending order like this ...

[[1, 1, "X","20120609"], [1, 2, "X","20120610"], [1, 3, "X","20120611"], 
[2, 1, "X","20120612"], [2, 2, "X","20120613"], [2, 3, "X","20120614"], 
[3, 1, "X","20120615"], [3, 2, "X","20120616"], [3, 3, "X","20120617"]]

Has anyone got any suggestions on how I can achieve an ordered array 
that looks like this ...

[[1, 3, "X","20120609"], [2, 3, "X","20120610"], [3, 3, "X","20120611"], 
[1, 2, "X","20120612"], [2, 2, "X","20120613"], [3, 2, "X","20120614"], 
[1, 1, "X","20120615"], [2, 1, "X","20120616"], [3, 1, "X","20120617"]]

Many thanks

Craig

-- 
Posted via http://www.ruby-forum.com/.