6.2 数组的类型
数组分为数字索引数组和关联索引数组。本节将详细讲述这两种数组的使用方法。
6.2.1 数字索引数组
数字索引数组是最常见的数组类型,默认从0开始计数。另外,数组变量在使用时即可创建,创建时即可使用。
声明数组的方法有两种。
(1)使用array()函数声明数组,具体的声明数组方式如下。
array数组名称([mixed]),其中参数mixed的语法为key=>value,如果有多个mixed,可以用逗号分开,分别定义索引和值。
$arr = array("1"=> "空调", "2"=>"冰箱", "3"=>"洗衣机", "4"=>"电视机");
利用array()函数定义比较方便,可以只给出数组的元素值,而不需要给出键值,例如:
$arr = array( "空调", "冰箱", "洗衣机", "电视机");
(2)直接通过为数组元素赋值的方式声明数组。
如果在创建数组时不知道数组的大小,或者数组的大小可能会根据实际情况发生变化,此时可以使用直接赋值的方式声明数组,例如:
$arr[1]= "空调"; $arr[2]= "冰箱" $arr[3]= "洗衣机"; $arr[4]= "电视机";
下面以酒店网站系统中酒店房价为例进行讲解。
【例6.1】(实例文件:ch06\6.1.php)
<? php $roomtypes = array( ’单床房’, ’标准间’, ’三床房’, 'VIP套房’); echo $roomtypes[0]."\t".$roomtypes[1]."\t".$roomtypes[2]."\t".$roomtypes[3]. "<br />"; echo "$roomtypes[0] $roomtypes[1] $roomtypes[2] $roomtypes[3] <br />"; $roomtypes[0] = ’单人大床房’; echo "$roomtypes[0] $roomtypes[1] $roomtypes[2] $roomtypes[3]<br />"; ?>
运行结果如图6-1所示。
图6-1 程序运行结果
【案例分析】
(1)$roomtypes为一维数组,用关键字array声明,并且用“=”赋值给数组变量$roomtypes。
(2)’单床房’、’标准间’、’三床房’和’VIP套房’ 为数组元素,且这些元素为字符串型,用单引号方式表示。每个数组元素用“, ”分开。echo命令直接打印数组元素,元素索引默认从0开始,所以第一个数组元素为$roomtypes[0]。
(3)数组元素可以直接通过“=”号赋值,如$roomtypes[0] = ’单人大床房’; , echo打印后为“单人大床房”。
6.2.2 关联索引数组
关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能为数字。所以判断一个数组是否为关联数组的依据是:数组中的键名是否存在不是数字的字符,如果存在,则为关联数组。
下面以使用关联索引数组编写酒店房间类型为例进行讲解。
【例6.2】(实例文件:ch06\6.2.php)
<? php $prices_per_day = array(’单床房’=> 298, ’标准间’=> 268, ’三床房’=> 198, 'VIP套房'=> 368); echo $prices_per_day[’标准间’]."<br />"; ?>
运行结果如图6-2所示。
图6-2 程序运行结果
【案例分析】
其中,echo命令直接指定数组$prices_per_day中的关键字索引‘标准间’(是一个字符串)便可打印出数组元素268(是一个整型数字)。