PHPの多次元配列とは?基本構文と実用例をわかりやすく解説
多次元配列(Multidimensional Array)とは、1つ以上の配列を要素として含む配列のことです。メインとなる配列の各要素がさらに配列になることもでき、さらにそのサブ配列の各要素もまた配列となり得ます。このように、配列の中に配列を何重にも入れ子にしてデータを格納する構造を指します。
多次元配列内の値には、複数のインデックス(キー)を連ねてアクセスします。例えば、2次元配列の場合は $array[キー1][キー2] のような形式で目的の値を取り出すことができます。
多次元配列の基本例
ここでは、学生ごとの科目別の点数を管理する2次元の連想配列の例を見てみましょう。PHPで多次元配列を実装するコードは以下の通りです。
<?php
$marks = array(
"kevin" => array (
"physics" => 95,
"maths" => 90,
),
"ryan" => array (
"physics" => 92,
"maths" => 97,
),
);
echo "Marks for kevin in physics : ";
echo $marks['kevin']['physics'] . "\n";
echo "Marks for ryan in maths : ";
echo $marks['ryan']['maths'] . "\n";
?>
出力結果
上記のコードを実行すると、次のような出力が得られます。
Marks for kevin in physics : 95 Marks for ryan in maths : 97
この例では、外側の配列が学生名をキーとして持ち、その値として各科目の点数を格納した連想配列を持っています。$marks['kevin']['physics'] のように2つのキーを指定することで、「kevinの物理の点数」という特定の値に直接アクセスできるのがポイントです。
3次元配列の作成例
続いて、3次元配列を作成する例を見てみましょう。配列の中に配列、さらにその中に配列という三重の入れ子構造になっています。
<?php
$arr = array(
array(
array(100, 150),
array(200, 250),
),
array(
array(300, 350),
array(400, 500),
),
);
print_r($arr);
?>
出力結果
上記のコードを実行すると、print_r() によって配列の構造が次のように表示されます。
Array
(
[0] => Array
(
[0] => Array
(
[0] => 100
[1] => 150
)
[1] => Array
(
[0] => 200
[1] => 250
)
)
[1] => Array
(
[0] => Array
(
[0] => 300
[1] => 350
)
[1] => Array
(
[0] => 400
[1] => 500
)
)
)
まとめ
PHPの多次元配列を使うと、表形式のデータや階層的なデータを直感的に扱うことができます。数値インデックスだけでなく文字列キーも組み合わせられるため、実際のWebアプリケーション開発では、ユーザー情報の一覧管理や設定値のグループ化など、さまざまな場面で活用されています。なお、PHP 5.4以降では array() の代わりに短縮構文 [] を使って同じように多次元配列を定義することも可能です。
-
【初心者向け】C/C++における多次元配列の初期化方法をわかりやすく解説
多次元配列とは、次元数が2以上ある配列のことです。本記事では、3×3×3の多次元配列におけるメモリ割り当ての仕組みと、実際に配列を初期化して内容を表示するC++プログラムを紹介します。下図は、次元が3×3×3の多次元配列に対するメモリ割り当ての戦略を示したものです。アルゴリズム多次元配列を初期化するプログラムは、以下の手順で構成されます。Begin 多次元配列の要素を初期化する 配列のサイズを出力する 配列の内容を表示する Endサンプルコード以下は、2行2列の二次元配列を初期化し、そのサイズと内容を出力するC++プログラムです。#include<iostream
-
C言語の多次元配列とは?行優先・列優先の仕組みとサンプルコード
多次元配列とは配列とは、同種のデータ(ホモジニアスなデータ)をまとめて管理するための基本的なデータ構造です。配列の要素は、メモリ上の連続した領域に順番に配置されます。しかし実際のプログラミングでは、1次元の配列だけでは不十分なケースが少なくありません。例えば、表形式のデータや行列を扱う場合には、2次元配列やさらに多くの次元を持つ多次元配列を作成する必要があります。行優先方式と列優先方式多次元配列をメモリ上に表現する方法には、大きく分けて2つのアプローチがあります。ひとつは行優先(Row-Major)方式、もうひとつは列優先(Column-Major)方式です。r行 c列の2次元配列を考えてみま