PHP 多维数组
1. PHP - 多维数组
多维数组是指包含一个或多个内部数组的数组。
PHP 支持二维、三维、四维、五维甚至更多维度的数组。然而,对于大多数人来说,超过三维的数组会变得非常难以管理和维护。
2. PHP - 二维数组
二维数组(Two-dimensional array)本质上就是“包含数组的数组”(而三维数组则是“包含数组的数组的数组”)。
请看下面这个表示库存和销量的数据表:
| 品牌 (Name) | 库存 (Stock) | 销量 (Sold) |
|---|---|---|
| Volvo | 22 | 18 |
| BMW | 15 | 13 |
| Saab | 5 | 2 |
| Land Rover | 17 | 15 |
我们可以将上表中的数据存储到一个二维数组中,如下所示:
$cars = array (
array("Volvo", 22, 18),
array("BMW", 15, 13),
array("Saab", 5, 2),
array("Land Rover", 17, 15)
);现在,这个二维 $cars 数组内部包含了四个子数组,它具有两个索引维度:行 (row) 和 列 (column)。
要访问 $cars 数组中的具体元素,我们必须同时指向这两个索引(即先指定行,再指定列):
示例
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>";数组的“维度”表示您需要使用多少个索引才能选定某个具体的元素:
- 对于一维数组,您只需一个索引来选取元素。
- 对于二维数组,您需要两个索引来选取元素。
- 对于三维数组,您需要三个索引来选取元素。
3. PHP - 循环遍历多维数组
要循环遍历一个多维数组,请使用嵌套的 for 循环或 foreach 循环。
下面这个例子中,我们在一个 for 循环内部嵌套了另一个 for 循环,以此来获取 $cars 数组中的所有元素(我们依然需要指向两个维度的索引):
示例
使用嵌套 for 循环:
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>";
}下面这个例子中,我们在一个 foreach 循环内部嵌套了另一个 foreach 循环来获取 $cars 数组的元素。
并且,我们将遍历出的结果放入了一个 HTML 表格(<table>)中:
示例
使用嵌套 foreach 循环生成 HTML 表格:
echo "<table>";
echo "<tr><th>Brand</th><th>Stock</th><th>Sold</th></tr>";
foreach ($cars as $row) {
echo "<tr>";
foreach ($row as $cell) {
echo "<td>" . $cell . "</td>";
}
echo "</tr>";
}
echo "</table>";