# \[ARRAYS\] Bidimensional Arrays? (opened)

**URL:** <https://www.ruby-forum.com/t/arrays-bidimensional-arrays-opened/75996>\
**Category:** Ruby\
**Created:** [November 15, 2006, 12:44am UTC](https://www.ruby-forum.com/t/arrays-bidimensional-arrays-opened/75996 "2006-11-15T00:44:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![flaab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/dbc845/32.png) [@flaab](https://www.ruby-forum.com/u/flaab)\
**Post date:** [November 15, 2006, 12:44am UTC](https://www.ruby-forum.com/t/arrays-bidimensional-arrays-opened/75996/1 "2006-11-15T00:44:27Z")

</div>

Hi there!

I’m just new at ruby and I have a weird issue probably really dumb but i  
just haven’t been able to figure it out.

Using arrays in C or whatever i could define an array using to indexing  
numbers, in order to simulate a chess board or whatever…

board = array[8,8]

And then store info in that array like this

board[1,1] = whatever.

I just can’t get that to work in ruby! Why? How can i do it?

Thx

---

<div class="post-metadata">

**Author:** ![flaab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/dbc845/32.png) [@flaab](https://www.ruby-forum.com/u/flaab)\
**Post date:** [November 15, 2006, 1:02am UTC](https://www.ruby-forum.com/t/arrays-bidimensional-arrays-opened/75996/2 "2006-11-15T01:02:28Z")

</div>

On 11/14/06, Flaab M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> And then store info in that array like this
> 
> board[1,1] = whatever.
> 
> I just can’t get that to work in ruby! Why? How can i do it?

The ruby Array class is always a one dimensional array. You can create  
an array of arrays to get two dimensional behavior.

ary = Array.new(3) {|idx| Array.new(3)}  
ary[0][0] = 1

To make the indexing a little more clear

tmp =ary[0] # give me the row at index 0  
tmp[0] = 1 # set the value at column 0 of row 0 to 1 (since  
tmp is really row 0)

But usually you can just glom all that together like so …

ary[0][0] = 1  
ary[0][1] = 2  
ary[0][2] = 3

I hope this answers your question.

TwP

---

<div class="post-metadata">

**Author:** ![flaab](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/dbc845/32.png) [@flaab](https://www.ruby-forum.com/u/flaab)\
**Post date:** [November 15, 2006, 1:10am UTC](https://www.ruby-forum.com/t/arrays-bidimensional-arrays-opened/75996/3 "2006-11-15T01:10:28Z")

</div>

Flaab M. wrote:

> And then store info in that array like this
> 
> board[1,1] = whatever.
> 
> I just can’t get that to work in ruby! Why? How can i do it?
> 
> Thx

The easiest way to define a multidimensional array in Ruby is to define  
an array of arrays:

board = Array.new(8) { Array.new(8) }

Run “ri Array.new” to read about how to create and initialize arrays.
