文章教程

5.2输出数组元素的方法

9/17/2020 9:31:19 PM 人评论 次浏览

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)

教程类别