このチュートリアルの前半では、キー/値のペアの1次元の配列について説明しました。
しかし、複数のキーを持つ値を格納したい場合があります。
これは、多次元配列に格納することができます。
多次元配列は、1つ以上の配列を含む配列です。
PHPでは、2,3,4,5またはそれ以上のレベルの多次元配列を使用することができますが、3次元以上のレベルの配列は、 ほとんどの人にとって取り扱いが難しくなるでしょう。
配列の次元とは、要素を選択するために必要なインデックスの数を示します。
2次元配列は配列の配列です(3次元配列は配列の配列の配列です)。
まず、次の表を見てください:
名前 | Stock | Sold |
---|---|---|
Volvo | 22 | 18 |
BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
上の表のデータを2次元配列に格納するには、次のようにします:
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
2次元 $cars 配列は、4つの配列と、2つのインデックス(行と列)を持っています。
$cars配列の要素にアクセスするには、2つのインデックス(行と列)を指定しなければなりません:
<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>
例の実行 »
Forループを別のForループの中に入れて、$cars配列の要素を取得することもできます(この場合も2つのインデックスを指定する必要があります):
<?php
for ($row = 0; $row < 4; $row++) {
echo "<p><b>Row number $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
例の実行 »