PHP从入门到精通(第5版)
上QQ阅读APP看书,第一时间看更新

7.6 遍历数组

遍历数组中的所有元素是常用的一种操作,在遍历的过程中可以完成查询等功能。在生活中,如果想要去商场买一件衣服,就需要在商场中逛一遍,看是否有想要的衣服,逛商场的过程就相当于遍历数组的操作。在PHP中遍历数组的方法有多种,下面介绍最常用的两种方法。

1.使用foreach结构遍历数组

遍历数组元素最常用的一种方法是使用foreach结构。foreach结构并非操作数组本身,而是操作数组的一个备份。

【例7.6】对于一个存有大量网址的数组变量$url,如果应用echo语句一个个地输出,将相当烦琐,而通过foreach结构遍历数组则可轻松获取数据信息,实例代码如下:(实例位置:资源包\TM\sl\7\6

    <?php
     $url = array('编程词典网'=>'www.mrbccd.com',
                '编程体验网'=>'www.bcty365.com',
                '编程资源网'=>'www.bc110.com',
                );                                 //声明数组
     foreach ( $url as $link ) {                   //遍历数组
        echo $link.'<br>';
    }
    ?>

结果为:www.mrbccd.com

www.bcty365.com

www.bc110.com

在上面的代码中,PHP为$url的每个元素依次执行循环体(each语句)一次,将$link赋值给当前元素的值。各元素按数组内部顺序进行处理。

2.使用list()函数遍历数组

把数组中的值赋给一些变量。与array()函数类似,这不是真正的函数,而是语言结构。list()函数仅能用于数字索引的数组,且数字索引从0开始。

语法格式如下:

    void list ( mixed ...)

其中,mixed为被赋值的变量名称。

【例7.7】下面通过具体的实例讲解list()函数和each()函数的综合应用,获取存储在数组中的用户登录信息。(实例位置:资源包\TM\sl\7\7

具体开发步骤如下。

(1)利用开发工具(如Dreamweaver)新建一个PHP动态页,保存为index.php。

(2)应用HTML标记设计页面。首先建立用户登录表单,用于实现用户登录信息的录入,然后使用each()函数提取全局数组$_POST中的内容,最后使用while语句循环输出用户所提交的注册信息。代码如下:

    <!--  -------------------------------------------------------定义用户登录表单------------------------------------------------------ -->
    <form name="form1" method="post">
         <table width="323" border="1" cellpadding="1" cellspacing="1" bordercolor="#66CC33" bgcolor="#FFFFFF">
           <tr>
             <td width="118" height="24" align="right" bgcolor="#CCFF33">用户名:</td>
              <td width="192" height="24" bgcolor="#CCFF33"><input name="user" type="text" class="inputcss"
    id="user" size="24"></td>
           </tr>
           <tr>
             <td height="24" align="right" bgcolor="#CCFF33">密&nbsp;&nbsp;码:</td>
             <td height="24" bgcolor="#CCFF33"><input name="pwd" type="password" class="inputcss" id="pwd"
    size="24"></td>
           </tr>
           <tr align="center" bgcolor="#CCFF33">
             <td height="24" colspan="2"><input name="submit" type="submit"  value="登录"></td>
           </tr>
      </table>
    </form>
    <?php
    //输出用户登录信息
    while(list($name,$value)=each($_POST)){
        if($name!="submit"){
             echo "$name=$value<br>";
        }
    }
    ?>

(3)在IE浏览器中输入地址,按Enter键,输入用户名及密码,单击“登录”按钮,运行结果如图7.2所示。

图7.2 应用list()函数获取用户登录信息

说明

each()函数用于返回当前指针位置的数组值,并将指针推进一个位置。返回的数组包含4个键,键0和key包含键名,而键1和value包含相应的数据。如果程序在执行each()函数时指针已经位于数组末尾,则返回false。