PHP入門:多次元配列を使いこなそう

多次元配列は、配列の中にさらに配列を持つデータ構造です。データベースのレコードや在庫管理など、現実的な場面でよく使われます。この記事では、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);

まとめ

  • 多次元配列は現実的なデータを扱う際に必須の知識
  • インデックス配列+連想配列を組み合わせることで柔軟なデータ管理が可能

-PHP
-