5.2输出数组元素的方法
5.2 输出数组元素的方法
在实际开发中,经常要访问数组的值。如果每次都按数组索引来取数值元素,会非常麻烦。在PHP中可以通过各种循环来快速访问数组元素。本节就介绍常用的for和foreach。
5.2.1 使用for循环语句输出数组元素
对于一个按整数顺序索引的数组,可以通过for循环语句来依次访问数组元素,例如代码5-2。
代码5-2 使用for循环来显示数组元素5-2.php
01 <?php
02 $ms_office = array(
03 "word",
04 "excel",
05 "outlook",
06 "access"
07 ); //
定义数组$ms_office
08
09 for($i=0; $i<4; $i++) //
从0
到3
的循环
10 {
11 echo "
数组第 ".($i+1)."
个元素是:";
12 echo $ms_office[$i]; //
输出索引为i
的数组值
13 echo "<br/>";
14 echo "<br/>";
15 }
16 ?>

图5-1 用for循环访问数组元素
【代码解析】代码第02~07行定义了一个数组,没有指定它的索引,所以使用默认的整数形式。所以在第12行可以使用$ms_office[$i]的形式来获取数组元素。第9行是一个for循环,$i的值从0开始,一直到3。这段代码输出的结果如图5-1所示。
5.2.2 使用foreach循环语句输出数组元素
PHP还专门为数组提供了一个循环语句,即foreach循环语句,语法结构如下。
foreach($array as $some_var)
{
statement
}
其中,foreach和as都是PHP关键字。该语法结构的含义是:按顺序,每次将数组$array中的一个元素存入变量$some_var后执行statement语句,然后取下一个元素执行statement语句,依次下去,直到所有元素都取到。和for循环语句一样,statement可以是单条语句,也可以是一个语句块。代码5-2可以改写成代码5-3的形式,输出的结果和代码5-2完全一样。
代码5-3 使用foreach循环获取数组元素5-3.php
01 <?php
02 $ms_office = array(
03 "word",
04 "excel",
05 "outlook",
06 "access"
07 ); //
定义数组$ms_office
08
09 foreach($ms_office as $software) //
使用foreach
遍历数组$ms_office
的值
10 {
11 echo $software; //
输出数组$ms_office
中的值
12 echo "<br/>";
13 echo "<br/>";
14 }
15 ?>
【代码解析】代码第09~14行将数组的每个元素依次存储在变量$software中,然后打印出来。
foreach循环不仅可以获取数组元素,还可以获取索引,例如代码5-4。
代码5-4 使用foreach循环获取数组元素及其索引5-5.php
01 <?php
02 $ms_office = array(
03 "wd"=>"word",
04 "ec"=>"excel",
05 "ol"=>"outlook",
06 "ac"=>"access"
07 ); //
定义数组$ms_office
08
09 foreach($ms_office as $key=>$value) //
遍历数组$ms_office
10 {
11 echo $key.": ".$value; //
输出数组中$ms_office
的索引和元素
12 echo "<br/>";
13 echo "<br/>";
14 }
15 ?>

图5-2 用foreach循环取数组的索引和值
【代码解析】这段代码中,每次foreach循环都会将数组的一个索引赋给变量$key,将其对应的值赋给变量$value。该代码输出结果如图5-2所示。
5.2.3 使用函数print_r()显示数组元素
有时,为了在程序中查看一个数组的结构(即索引和值的对应关系),需要将数组结构显示到页面上。这可以通过PHP的print_r()函数实现。代码5-5是使用函数print_r()的示例程序。
代码5-5 使用函数print_r输出数组5-5.php
01 <?php
02 $ms_office = array(
03 "word",
04 "excel",
05 "outlook",
06 "access"
07 ); //
定义数组$ms_office
08
09 print_r($ms_office); //
输出数组$ms_office
的结构
10 ?>
【代码解析】代码第09行没有再用任何循环语句,而是只用了一个print_r()函数。这段代码输出结果如图5-3所示。
如果在上述代码中调用print_r()函数之前加入输出标签“<pre>”的代码,即加入语句“echo"<pre>";”,就会得到格式更明了的数组结构,例如代码5-6。
代码5-6 使用函数print_r加“<pre>”输出数组5-6.php
01 <?php
02 $ms_office = array(
03 "word",
04 "excel",
05 "outlook",
06 "access"
07 ); //
定义数组$ms_office
08
09 echo "<pre>";
10 print_r($ms_office); //
有序输出数组$ms_office
的结构
11 ?>
【代码解析】代码第09行的HTML标签<pre>可定义预格式化的文本。“<pre>”和“</pre>”标签,可以把它们之间文本中的空格、回车、换行、Tab键表现出来,即按照文本原先的布局显示。在代码5-6中,调用函数print_r()之后,也可以加上输出结束标签“</pre>”的代码。这段代码输出结果如图5-4所示。

图5-3 使用print_r()输出数组(1)

图5-4 使用print_r()输出数组(2)
上一篇:5.1建立数组的方法
下一篇:5.3计算数组元素个数
