多次元配列は、配列の中にさらに配列を持つデータ構造です。データベースのレコードや在庫管理など、現実的な場面でよく使われます。この記事では、PHPの多次元配列の作り方から基本操作、実践的な例までをわかりやすく解説します。
多次元配列とは?
多次元配列は「配列の中に配列を持つデータ構造」のことです。1次元配列は単純なリストでしたが、多次元配列を使えば表形式のデータや複雑な情報を扱えます。
例:商品名と価格のリスト
<?php
$products = [
["Apple", 120],
["Banana", 80],
["Orange", 100]
];
基本の作り方
配列の配列(インデックス配列の中に配列)
<?php
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
連想配列の配列
より実践的な形ではキーを持たせます。
<?php
$inventory = [
[
"name" => "Apple",
"price" => 120,
"stock" => 30
],
[
"name" => "Banana",
"price" => 80,
"stock" => 50
]
];
要素の取り出し方
インデックスでアクセス
<?php
echo $inventory[0]["name"]; // Apple
echo $inventory[1]["stock"]; // 50
foreachでループ処理
<?php
foreach ($inventory as $item) {
echo $item["name"] . " は " . $item["stock"] . "個在庫があります<br>";
}
出力例:
Apple は 30個在庫があります
Banana は 50個在庫があります
実践例:在庫管理システム風
商品の追加・在庫更新などを組み合わせる簡単な例です。
<?php
$inventory = [
["name" => "Apple", "price" => 120, "stock" => 30],
["name" => "Banana", "price" => 80, "stock" => 50]
];
// 新商品を追加
array_push($inventory, ["name" => "Orange", "price" => 100, "stock" => 20]);
// 在庫の更新
$inventory[0]["stock"] -= 5; // Appleを5個販売
// 在庫一覧を表示
foreach ($inventory as $item) {
echo $item["name"] . " (" . $item["price"] . "円): 在庫 " . $item["stock"] . "個<br>";
}
出力例:
Apple (120円): 在庫 25個
Banana (80円): 在庫 50個
Orange (100円): 在庫 20個
多次元配列と関数の組み合わせ
- 追加:
array_push
- 検索:
array_search
+ ループでキーを特定 - 結合:
array_merge
で複数のリストをまとめる
例:特定の商品を探す
<?php
function findProduct($inventory, $name) {
foreach ($inventory as $item) {
if ($item["name"] === $name) {
return $item;
}
}
return null;
}
$result = findProduct($inventory, "Orange");
print_r($result);
まとめ
- 多次元配列は現実的なデータを扱う際に必須の知識
- インデックス配列+連想配列を組み合わせることで柔軟なデータ管理が可能