Skip to content

7.2 二维数组、多维数组

多维数组是指数组的元素也是数组,最常见的是二维数组,用于表示表格型数据。

二维数组

二维数组可以看作是一个表格,有行和列的概念。

创建二维数组

php
// 方法1:使用array()函数
$students = array(
    array("name" => "张三", "age" => 18, "grade" => "高三"),
    array("name" => "李四", "age" => 19, "grade" => "高二"),
    array("name" => "王五", "age" => 17, "grade" => "高一")
);

// 方法2:使用短语法
$students = [
    ["name" => "张三", "age" => 18, "grade" => "高三"],
    ["name" => "李四", "age" => 19, "grade" => "高二"],
    ["name" => "王五", "age" => 17, "grade" => "高一"]
];

访问二维数组元素

php
echo $students[0]["name"]; // 输出:张三
echo $students[1]["age"];  // 输出:19

多维数组

多维数组是指超过二维的数组,例如三维数组、四维数组等。

创建三维数组

php
$school = [
    "grade1" => [
        "class1" => [
            ["name" => "张三", "age" => 18],
            ["name" => "李四", "age" => 19]
        ],
        "class2" => [
            ["name" => "王五", "age" => 17],
            ["name" => "赵六", "age" => 18]
        ]
    ],
    "grade2" => [
        "class1" => [
            ["name" => "钱七", "age" => 16],
            ["name" => "孙八", "age" => 17]
        ]
    ]
];

访问多维数组元素

php
echo $school["grade1"]["class1"][0]["name"]; // 输出:张三

示例代码

php
<?php
// 二维数组示例(学生信息)
$students = [
    ["id" => 1, "name" => "张三", "age" => 18, "score" => 95],
    ["id" => 2, "name" => "李四", "age" => 19, "score" => 88],
    ["id" => 3, "name" => "王五", "age" => 17, "score" => 92]
];

echo "学生信息表:<br>";
echo "ID\t姓名\t年龄\t分数<br>";
echo "------------------------<br>";
foreach ($students as $student) {
    echo $student["id"] . "\t" . $student["name"] . "\t" . $student["age"] . "\t" . $student["score"] . "<br>";
}

// 三维数组示例(商品分类)
$products = [
    "electronics" => [
        "phones" => [
            ["name" => "iPhone 13", "price" => 5999],
            ["name" => "Samsung Galaxy S21", "price" => 4999]
        ],
        "laptops" => [
            ["name" => "MacBook Pro", "price" => 9999],
            ["name" => "Dell XPS", "price" => 7999]
        ]
    ],
    "clothing" => [
        "shirts" => [
            ["name" => "Cotton Shirt", "price" => 199],
            ["name" => "Polo Shirt", "price" => 299]
        ]
    ]
];

echo "<br>商品分类:<br>";
foreach ($products as $category => $subcategories) {
    echo strtoupper($category) . "<br>";
    foreach ($subcategories as $subcategory => $items) {
        echo "  " . ucfirst($subcategory) . "<br>";
        foreach ($items as $item) {
            echo "    " . $item["name"] . " - ¥" . $item["price"] . "<br>";
        }
    }
}
?>

注意事项

  1. 多维数组的维度不宜过深,否则会增加代码的复杂度
  2. 访问多维数组元素时,需要提供完整的键路径
  3. 可以使用嵌套的foreach循环来遍历多维数组
  4. 多维数组在处理复杂数据结构时非常有用

练习

  1. 创建一个二维数组,存储5个学生的信息(姓名、年龄、成绩)
  2. 创建一个三维数组,存储不同分类的商品信息
  3. 编写代码遍历并输出多维数组的内容

© 2026 编程马·菜鸟教程 版权所有