カテゴリ: Ruby 更新日: 2025/12/31

Ruby配列の完全入門!ネスト配列と多次元配列の扱い方をやさしく解説

ネスト配列の扱い:多次元配列のアクセス・flatten/transpose
ネスト配列の扱い:多次元配列のアクセス・flatten/transpose

先生と生徒の会話形式で理解しよう

生徒

「Rubyの配列の中に、さらに配列が入っているものを見たんですが、どうやって使うんですか?」

先生

「それはネスト配列や多次元配列と呼ばれるものですね。箱の中に箱が入っているイメージです。」

生徒

「取り出し方や、平らにする方法が難しそうで不安です…」

先生

「大丈夫ですよ。順番に見ていけば、初めてパソコンを触る人でも理解できます。」

1. ネスト配列・多次元配列とは?

1. ネスト配列・多次元配列とは?
1. ネスト配列・多次元配列とは?

Rubyの配列は、複数の値をひとまとめにして管理できる便利な仕組みです。 その配列の中に、さらに配列が入っている状態をネスト配列と呼びます。 また、表のように行と列を持つ形は多次元配列とも言います。

例えるなら、引き出しの中に小さな箱があり、その箱の中に物が入っている状態です。 Rubyでは、このような構造を自然に扱うことができます。 「ネスト」という言葉は「入れ子」という意味で、難しく感じますが、 実際は配列の中に配列があるだけです。

2. 多次元配列の基本的な書き方

2. 多次元配列の基本的な書き方
2. 多次元配列の基本的な書き方

Rubyで多次元配列を作るときは、配列の中に配列を書くだけです。 二次元配列は、表計算ソフトの行と列を思い浮かべると理解しやすくなります。


scores = [
  [80, 90, 70],
  [60, 85, 75],
  [90, 88, 92]
]

この例では、外側の配列に3つの配列が入っています。 それぞれが1行分のデータだと考えると、イメージしやすくなります。

3. ネスト配列から値を取り出す方法

3. ネスト配列から値を取り出す方法
3. ネスト配列から値を取り出す方法

ネスト配列の中身を取り出すには、インデックスを順番に指定します。 インデックスとは、配列の中での位置番号のことで、0から始まる点が特徴です。


scores = [
  [80, 90, 70],
  [60, 85, 75],
  [90, 88, 92]
]

puts scores[0][1]

90

最初の[0]で外側の配列の1番目を指定し、 次の[1]で内側の配列の2番目を指定しています。 二段階で箱を開けるイメージを持つと理解しやすくなります。

4. flattenで配列を平らにする

4. flattenで配列を平らにする
4. flattenで配列を平らにする

ネスト配列を扱っていると、「全部まとめて1つの配列にしたい」 という場面がよくあります。 そんなときに使うのがflattenメソッドです。

flattenは、重なっている配列を一気に広げて、1列に並べ直す働きをします。 山積みの箱をすべて床に並べるようなイメージです。


numbers = [[1, 2], [3, 4], [5, 6]]
flat = numbers.flatten
puts flat

1
2
3
4
5
6

flattenを使うと、ネストの深さを意識せずに扱えるようになります。 初心者のうちは、「配列が平らになる」と覚えるだけで十分です。

5. flattenの深さを指定する

5. flattenの深さを指定する
5. flattenの深さを指定する

flattenには、どこまで平らにするかを指定する方法もあります。 深いネスト構造の場合、一部だけを平らにしたいこともあります。


array = [1, [2, [3, 4]]]
puts array.flatten(1)

1
2
[3, 4]

数字は「どの段階まで広げるか」を意味しています。 無理に覚えなくても、「指定できる」ということを知っておくだけで安心です。

6. transposeで行と列を入れ替える

6. transposeで行と列を入れ替える
6. transposeで行と列を入れ替える

多次元配列を表として扱うときに便利なのがtransposeです。 transposeは、行と列をひっくり返すメソッドです。

例えば、縦に並んだデータを横に並べ替えたいときに使います。 表の向きを変えると考えると分かりやすいです。


table = [
  ["名前", "年齢"],
  ["田中", 20],
  ["佐藤", 22]
]

puts table.transpose

名前
田中
佐藤
年齢
20
22

transposeを使うと、データの見方を簡単に変えることができます。 配列の形を理解する力が、自然と身についていきます。

7. ネスト配列を扱うときの注意点

7. ネスト配列を扱うときの注意点
7. ネスト配列を扱うときの注意点

ネスト配列や多次元配列は便利ですが、 構造が分からなくなると混乱しやすいという特徴もあります。 そのため、紙に図を書いたり、箱のイメージで考えることが大切です。

Rubyではflattenやtransposeといった便利なメソッドが用意されているので、 無理に複雑な処理を書かなくても対応できます。 初心者のうちは、「取り出す」「平らにする」「向きを変える」 この3点を意識するだけで十分です。

関連記事:
カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
Rails
RailsモデルとActive Record基礎|クエリログの読み方を理解してEXPLAIN・joins・includesの違いを学ぼう
No.8
Java&Spring記事人気No8
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説