5.2 声明数组
PHP中声明数组的规则如下。
1)数组的名称由一个符号($)开始,第一个字符是字母或下划线,其后是任意数量的字母、数字或下划线。
2)在同一个程序中,标量变量和数组变量都不能重名。例如,如果已经存在一个名称为$string的变量,而又创建一个名称为$string的数组,那么前一个变量就会被覆盖。
3)数组的名称区分大小写,如$String与$string是不同的。
声明数组的方法有两种,分别为用户声明和函数声明。下面介绍用户如何自己创建数组和使用什么函数可以直接创建数组。
5.2.1 用户创建数组
用户创建数组应用的是标识符“[]”,通过标识符“[]”可以直接为数组元素赋值。其基本格式如下:
其中key可以是int型或者字符串型数据,value可以是任何值。
【例5-1】应用标识符“[]”创建数组array,然后应用print_r()函数输出数组元素。
运行结果为:Array([0]=>数据库原理及应用基础[1]=>虚拟现实技术及应用[2]=>Office高级应用[3]=>网站开发与设计)
说明:本例中使用print_r()函数输出数组元素,因为使用print_r输出数组,将会按照一定格式输出数组中所有的键名和元素。而使用echo语句可以输出数组中指定的某个元素。
注:
1)用户创建数组,比较适合创建不知大小的数组,或者创建大小可能发生改变的数组。
2)切忌在通过标识符[]直接为数组元素赋值,同一数组元素中的数组名称必须相同。
3)如果数组元素中的“键”是一个浮点数,则“键”将被强制转换为整数(例如浮点数8.0将被强制转换为整数8);如果“键”是TRUE或FALSE,则“键”将被强制转换为整数1或0。
4)如果数组元素中的“键”是一个字符串,且该字符串完全符合整数格式时,数组元素的“键”将被强制转换为整数(例如"9"将被强制转换为整数9)。
5)由于数组元素中的“键”唯一标识一个元素,因此数组中元素的“键”不能相等(使用==比较)。如果两个数组元素的“键”相等,“键”对应的“值”将被覆盖。
6)不要在array()语言结构中使用诸如“red=>"red"”键值对的方式创建数组元素,也不要使用诸如$colors[red]=“red”的赋值语句的方式创建数组元素,否则程序的可读性及运行效率将大打折扣。
5.2.2 函数创建数组
PHP中最常用的创建数组的函数是array(),其语法如下:
参数mixed的格式为“key=> value”,多个参数mixed用逗号分开,分别定义键名(key)和值(value)。
应用array()函数声明数组时,数组下标(键名)既可以是数值索引也可以是关联索引。下标与数组元素值之间用“=>”进行连接,不同数组元素之间用逗号进行分隔。
应用array()函数定义数组时,可以在函数体中只给出数组元素值,而不必给出键名。
说明:
1)数组中的索引(key)可以是字符串或数字。如果省略了索引,会自动产生从0开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引+1。如果定义了两个完全相同的索引,则后面一个会覆盖前一个。
2)数组中的各数据元素的数据类型可以不同,也可以是数组类型。当mixed是数组类型时,就是二维数组。
【例5-2】应用array()函数声明数组,并输出数组中的元素。
运行结果如下:
5.2.3 创建二维数组
上述创建的数组都是只有一列数据内容的,因此称为一维数组。如果将两个一维数组组合成一个数组,那么就称为二维数组。
【例5-3】用array()函数创建一个二维数组,并输出数组的结构。
运行结果为: