我们大家都认识到了数组的优越性,现在我们将学习怎样PHP遍历数组中的数据。这种操作数组方法的应用是非常普遍的,我相信你会掌握得很好。比如你的网站存有大量的网址数据,你想在一个页面显示门户网站网址,这些数据已经保存到了一个数组变量$url里,那么怎样把这些数据一个一个输出到网页里呢?你还想象上节课那样一个一个echo输出吗?别忘了数据量是非常大而且数据的个数是经常变化的噢。PHP当然会有简单的办法,先看一个例子:
- foreach
- <?php
- $url=array('新浪'=>'www.sina.com',
- '雅虎'=>'www.yahoo.com',
- '网易'=>'www.163.com',
- '腾讯'=>'www.qq.com',
- '百度'=>'www.baidu.com'
- );
- foreach($urlas$link){
- echo$link.'<br><br>';
- }
- ?>
上面的代码中我们用到了foreach语句,这是一个用来PHP遍历数组中数据的最简单有效的方法。
foreach仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
PHP遍历数组语法:
- foreach(array_expressionas$value)statement
#T#这种格式遍历给定的array_expression数组,as是关键词。每次循环中,当前单元的值被赋给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。statement是后续操作,如果有多个语句,你可以象上例那样采用大括号包含。上例中,我们循环读取数组$url中的每个单元,并且每次都把该单元的值赋值给变量$link,再echo打印输出这个$link的值,然后再进行下一次循环直到数组中不再有数据。你动手试了吗?如果你试了,看到输出结果是不是觉得很有趣呢?我知道一会儿你就又有疑问了:为什么没有“新浪”“网易”这样的站名呢?要怎样做才能得到呢?
在$url数组定义中,“新浪”“网易”等都是作的键名而不是数组的值,我们的第一种语法只是循环取得数组中每个值。