首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

5.3 创建数组

与其他很多语言的数组实现方式不同,PHP不需要在创建数组时指定其大小。事实上,因为PHP是一种松散类型的语言,所以甚至不需要在使用数组前先行声明。尽管没有限制,PHP仍提供了正式和非正式的数组声明方法。两个方法各有优点,都值得学习。本节将分别讨论这两种方法,首先来介绍非正式的方法。

要引用PHP数组中的各个元素,可以用一对中括号来指示。因为数组没有大小限制,所以只需建立引用就可以创建数组,例如:

然后,可以如下显示数组$states的第一个元素:

接下来,可以为数组索引映射新值,从而添加其他的值,如下:

有趣的是,如果认为索引值是数值索引而且是递增的,还可以在创建时省略索引值:

用这种方式创建关联数组也同样很简单,只不过必须一直使用关联索引引用(即不可省略)。下面的示例创建了一个数组,它将美国州名映射到其加入联邦的日期:

下面要讨论的array()函数在创建数组方面也有同样的功能,但更显正式。

1. array()

array()函数接受0个或多个元素作为输入,返回一个包含这些输入元素的数组。下面是一个使用array()创建索引数组的例子:

还可以使用array()创建一个关联数组,如下:

2. list()

list()函数与array()类似,只是它可以在一次操作中从一个数组内提取多个值,同时为多个变量赋值。从数据库或文件中提取信息时,这种构造尤其有用。例如,假设你希望格式化并输出从一个文本文件中读取的信息。文件的每一行都包含用户信息,如姓名、职业和喜爱的颜色,每一项用竖线分隔。典型的一行如下所示:

可以通过一个简单的循环使用list()来读取每一行,将各部分数据赋给变量,按照需要格式化并输出数据。下面显示了如何使用list()同时为多个变量赋值:

然后会读取每一行,并如下格式化:

回顾一下这个例子,list()依靠函数explode()将每一行分解为三个元素,这里,explode()使用竖线作为元素分隔符。(explode()函数将在第9章中正式介绍。)然后,这些元素分别赋给了$name、$occupation和$color。至此,余下的只是如何格式化以及显示到浏览器。

3. range()

range()函数是一个快速创建数组的简单方法,并会使用lowhigh范围的整数值填充数组。这个函数将返回一个包含此范围内所有整数的数组。

作为一个例子,假设需要一个数组,其中包含骰子中所有可能出现的值:

可选的step参数为确定范围内成员之间的增长幅度(步长)提供了一种简便方法。例如,如果希望有一个包含0到20之间所有偶数的数组,就可以使用步长值为2:

range()函数还可以用于字符序列。例如,假设希望创建一个包含字母A到F的数组:

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论