当前位置:  首页>> 技术小册>> PHP8入门与项目实战(3)

6.1 什么是数组
数组(array)就是用来存储一系列数值的地方。数组是非常重要的数据类型。相对于其他的数据类型,它更像是一种结构,而这种结构可以存储一系列的数值。

数组中的数值被称为数组元素(element)。每一个元素都有一个对应的标识(index),也称作键值(key)。通过这个标识,可以访问数组元素。数组的标识可以是数字,也可以是字符串。

例如,一个班级通常有十几个人,如果要找出某个学生,可以利用学号来区分每一个人,这时,班级就是一个数组,而学号就是下标。如果指明学号,就可以找到对应的学生。

6.2 数组的类型
数组分为数字索引数组和关联索引数组。本节将详细讲解这两种数组的使用方法。

6.2.1 数字索引数组
数字索引数组是最常见的数组类型,默认从0开始计数。另外,数组变量在使用时即可创建,创建时即可使用。

声明数组的方法有两种。

(1)使用array()函数声明数组,具体的声明数组的方式如下。

array数组名称([mixed]),其中参数mixed的语法为key=>value。如果有多个mixed,可以用逗号分开,分别定义索引和值。

  1. $arr = array("1"=> "空调", "2"=>"冰箱", "3"=>"洗衣机", "4"=>"电视机");

利用array()函数定义比较方便,可以只给出数组的元素值,而不需要给出键值,例如:

  1. $arr = array( "空调","冰箱","洗衣机","电视机");

(2)直接通过为数组元素赋值的方式声明数组。
如果在创建数组时不知道数组的大小,或者数组的大小可能会根据实际情况发生变化,此时可以使用直接赋值的方式声明数组,例如:

  1. $arr[1]= "空调";
  2. $arr[2]= "冰箱"
  3. $arr[3]= "洗衣机";
  4. $arr[4]= "电视机";

下面以酒店网站系统中的酒店房价为例讲解数组元素的赋值与访问。
【例6.1】

  1. <?php
  2. $roomtypes = array( '单床房','标准间','三床房','VIP套房');
  3. echo
  4. $roomtypes[0]."\t".$roomtypes[1]."\t".$roomtypes[2]."\t".$roomtypes[3]."<b
  5. r/>";
  6. echo "$roomtypes[0] $roomtypes[1] $roomtypes[2] $roomtypes[3] <br/>";
  7. $roomtypes[0] = '单人大床房';
  8. echo "$roomtypes[0] $roomtypes[1] $roomtypes[2] $roomtypes[3]<br/>";
  9. ?>

运行结果如图6-1所示。

【案例分析】
(1)$roomtypes为一维数组,用关键字array声明,并且用“=”赋值给数组变量$roomtypes。

(2)’单床房’、’标准间’、’三床房’和’VIP套房’为数组元素,且这些元素为字符串型,用单引号方式表示。每个数组元素用“,”分开。echo命令直接打印数组元素,元素索引默认从0开始,所以第一个数组元素为$roomtypes[0]。

(3)数组元素可以直接通过“=”号赋值,如$roomtypes[0] = ‘单人大床房’;,echo打印后为“单人大床房”。

6.2.2 关联索引数组
关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能为数字。所以判断一个数组是否为关联数组的依据是:数组中的键名是否存在不是数字的字符,如果存在,就为关联数组。

下面以使用关联索引数组编写酒店房间类型为例进行讲解。

【例6.2】

  1. <?php
  2. $prices_per_day = array('单床房'=> 298,'标准间'=> 268,'三床房'=> 198,'VIP套房'=>
  3. 368);
  4. echo $prices_per_day['标准间']."<br/>";
  5. ?>

运行结果如图6-2所示。

【案例分析】
其中,echo命令直接指定数组$prices_per_day中的关键字索引’标准间’(是一个字符串)便可打印出数组元素268(是一个整型数字)。

6.3 常量数组
在PHP 5.6版本中仅能通过const定义常量数组,例如:

  1. <?php
  2. // 使用const函数来定义数组
  3. const arr = array( "空调","冰箱","洗衣机","电视机");
  4. echo arr[2];
  5. ?>

以上程序执行后,输出结果为洗衣机。
PHP 8可以通过define()来定义常量数组,例如:

  1. <?php
  2. // 使用define函数来定义数组
  3. define ('学员', [
  4. '张笑笑',
  5. '杨洋',
  6. '王一刀'
  7. ]);
  8. print(学员[1]);
  9. ?>

以上程序执行后,输出结果为杨洋。