Appearance
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>";
}
}
}
?>注意事项
- 多维数组的维度不宜过深,否则会增加代码的复杂度
- 访问多维数组元素时,需要提供完整的键路径
- 可以使用嵌套的foreach循环来遍历多维数组
- 多维数组在处理复杂数据结构时非常有用
练习
- 创建一个二维数组,存储5个学生的信息(姓名、年龄、成绩)
- 创建一个三维数组,存储不同分类的商品信息
- 编写代码遍历并输出多维数组的内容
