# 2 dimensional array to single arrays

**URL:** <https://www.ruby-forum.com/t/2-dimensional-array-to-single-arrays/153827>\
**Category:** Ruby\
**Created:** [November 21, 2008, 3:42pm UTC](https://www.ruby-forum.com/t/2-dimensional-array-to-single-arrays/153827 "2008-11-21T15:42:49Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![johnnybutler7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johnnybutler7](https://www.ruby-forum.com/u/johnnybutler7)\
**Post date:** [November 21, 2008, 3:42pm UTC](https://www.ruby-forum.com/t/2-dimensional-array-to-single-arrays/153827/1 "2008-11-21T15:42:49Z")

</div>

Hi,

I have a nasty loop which creates 2 single arrays from a 2 dimensional  
array,

is there a quicker way to do it?

[[“a”,1],[“b”,2],[“c”,3]]

So i want an array  
[“a”,“b”,“c”]

and

[1,2,3]

Any quick method to do this?

JB

---

<div class="post-metadata">

**Author:** ![johnnybutler7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johnnybutler7](https://www.ruby-forum.com/u/johnnybutler7)\
**Post date:** [November 21, 2008, 4:12pm UTC](https://www.ruby-forum.com/t/2-dimensional-array-to-single-arrays/153827/2 "2008-11-21T16:12:41Z")

</div>

2008/11/21 John B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Any quick method to do this?

letters, numbers = [“a”,1],[“b”,2],[“c”,3]].transpose

Farrel

---

<div class="post-metadata">

**Author:** ![johnnybutler7](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johnnybutler7](https://www.ruby-forum.com/u/johnnybutler7)\
**Post date:** [November 21, 2008, 7:14pm UTC](https://www.ruby-forum.com/t/2-dimensional-array-to-single-arrays/153827/3 "2008-11-21T19:14:49Z")

</div>

John B. wrote:

> Hi,
> 
> I have a nasty loop which creates 2 single arrays from a 2 dimensional  
> array,
> 
> is there a quicker way to do it?
> 
> [[“a”,1],[“b”,2],[“c”,3]]
> 
> So i want an array  
> [“a”,“b”,“c”]
> 
> and
> 
> [1,2,3]
> 
> Any quick method to do this?
> 
> JB

my\_array = [[“a”,1],[“b”,2],[“c”,3]]

letters = my\_array.collect {|array| array[0]}  
numbers = my\_array.collect {|array| array[1]}
