文章教程

5.3.1二维数组的创建

9/17/2020 9:37:07 PM 人评论 次浏览

5.3 多维数组

如果数组元素中的“值”是另一个数组,此时数组是一个二维数组,甚至是多维数组。由于实际编程中二维数组经常使用,很少涉及多维数组,因此这里主要介绍二维数组的使用。

5.3.1 二维数组的创建

二维数组的创建方法和一维数组的创建方法相同。

方法1 直接将变量声明为二维数组

将数组元素的值设置为另一个数组时,该数组为二维数组,例如如下程序twoDimension.php,程序twoDimension.php创建了一个二维数组$students,该程序的运行结果如图5-13所示,该程序运行过程中的内存分配图如图5-14所示。

figure_0083_0122
图5-13 二维数组示例程序运行结果
figure_0083_0123
图5-14 二维数组元素在内存中的动态分配

<?php

$students["2010001"] =

array("studentNo"=>"2010001","studentName"=>"张三","studentSex"=>"男");

$students["2010002"] =

array("studentNo"=>"2010002","studentName"=>"李四","studentSex"=>"女");

$students["2010003"] =

array("studentNo"=>"2010003","studentName"=>"王五","studentSex"=>"男");

$students["2010004"] =

array("studentNo"=>"2010004","studentName"=>"马六","studentSex"=>"女");

print_r($students);

?>

二维数组看上去很像二维表,数组中的第一个“键”用于确定二维表中的某一“行”,数组中的第二个“键”用于确定二维表中的某一“列”(如表5-1所示)。

表5-1 二维数组VS二维表
figure_0084_0124

方法2 使用array()语言结构创建二维数组

二维数组$students也可以使用array()语言结构进行定义,例如程序twoDimension.php也可以修改为如下代码。

<?php

$students = array(

"2010001"=>

array("studentNo"=>"2010001","studentName"=>"张三","studentSex"=>"男"),

"2010002"=>

array("studentNo"=>"2010002","studentName"=>"李四","studentSex"=>"女"),

"2010003"=>

array("studentNo"=>"2010003","studentName"=>"王五","studentSex"=>"男"),

"2010004"=>

array("studentNo"=>"2010004","studentName"=>"马六","studentSex"=>"女")

);

print_r($students);

?>

5.3.2 二维数组元素“值”的访问

二维数组中存在两个“键”,因此访问数组元素的“值”时需要指定这两个“键”。例如$students["2010001"]["studentName"]对应的值是"张三",其中第一个键"2010001"用于指定二维数组$students 中的某一“行”,第二个键"studentName"用于指定二维数组$students 的该“行”的某一“列”。只使用第一个“键”访问数组时,访问的是二维数组中的某一“行”,该行是一个一维数组(例如$students["2010001"]对应的值是数组),例如,程序visitArray2.php如下。

<?php

$students = array(

"2010001"=>

array("studentNo"=>"2010001","studentName"=>"张三","studentSex"=>"男"),

"2010002"=>

array("studentNo"=>"2010002","studentName"=>"李四","studentSex"=>"女"),

"2010003"=>

array("studentNo"=>"2010003","studentName"=>"王五","studentSex"=>"男"),

"2010004"=>

array("studentNo"=>"2010004","studentName"=>"马六","studentSex"=>"女")

);

var_dump($students["2010001"]["studentName"]); //输出:string(4) "张三"

echo "<br/>";

var_dump($students["2010001"]);/*输出:array(3) { ["studentNo"]=> string(7) "2010001"

["studentName"]=> string(4) "张三" ["studentSex"]=> string(2) "男" } */

?>

教程类别