第十课:PHP中遍历数组
来源:PHP中文社区 上节课我们认识到了数组的优越性,这节课我们将学习怎样遍历数组中的数据。这种操作数组方法的应用是非常普遍的,我相信你会掌握得很好。 比如你的网站存有大量的网址数据,你想在一个页面显示门户网站网址,这些数据已经保存到了一个数组变量$url里,那么怎样把这些数据一个一个输出到网页里呢?你还想象上节课那样一个一个echo输出吗?别忘了数据量是非常大而且数据的个数是经常变化的噢。PHP当然会有简单的办法,先看一个例子10-1:
<?php
$url = array('新浪'=>'www.sina.com',
'雅虎'=>'www.yahoo.com',
'网易'=>'www.163.com',
'腾讯'=>'www.qq.com',
'百度'=>'www.baidu.com'
);
foreach ( $url as $link ) {
echo $link.'<br><br>';
}
?>
上面的代码中我们用到了foreach语句,这是一个用来遍历数组中数据的最简单有效的方法。
foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
第一种语法:
foreach (array_expression as $value) statement
这种格式遍历给定的 array_expression 数组,as 是关键词。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。statement是后续操作,如果有多个语句,你可以象上例那样采用大括号包含。
上例中,我们循环读取数组$url中的每个单元,并且每次都把该单元的值赋值给变量$link,再echo打印输出这个$link的值,然后再进行下一次循环直到数组中不再有数据。
你动手试了吗?如果你试了,看到输出结果是不是觉得很有趣呢?我知道一会儿你就又有疑问了:为什么没有“新浪”“网易”这样的站名呢?要怎样做才能得到呢?
在$url数组定义中,“新浪”“网易”等都是作的键名而不是数组的值,我们的第一种语法只是循环取得数组中每个值。如果要得到数组的键名,可以采用第二种语法:
第二种语法:
foreach (array_expression as $key => $value) statement
第二种格式做同样的事,只除了当前单元的键值也会在每次循环中被赋给变量 $key。
例如10-2:
<?php
$url = array('新浪'=>'www.sina.com',
'雅虎'=>'www.yahoo.com',
'网易'=>'www.163.com',
'腾讯'=>'www.qq.com',
'百度'=>'www.baidu.com'
);
foreach ( $url as $site => $link ) {
echo "<a href=http://$link>$site</a><br><br>";
}
?>
$site得到键值(如“新浪”),$link得到该单元的值(如“www.sina.com”),我在中间夹了一些HTML代码,相信你会看懂的。下面我再加点东西你能看懂吗?例10-3:
<?php
$url = array('新浪'=>'www.sina.com',
'雅虎'=>'www.yahoo.com',
'网易'=>'www.163.com',
'腾讯'=>'www.qq.com',
'百度'=>'www.baidu.com'
);
$n = 0;
foreach ( $url as $site => $link ) {
++$n ;
echo "第 $n 名:<a href=http://$link>$site</a><br><br>";
}
?>
注:当
foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。注:此外注意
foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。因此即使有 each() 的构造,原数组指针也没有变,数组单元的值也不受影响。注:foreach
不支持用“@”来禁止错误信息的能力。
分享到:
相关推荐
本文实例讲述了PHP中遍历数组的三种常用方法。分享给大家供大家参考,具体如下: 在PHP中操作最多的数据估计也就是数组了,有着效率高、速度快、存储方便的特点。 PHP中遍历数组有三种常用的方法: 1、for循环,...
在Vue中遍历数组是开发过程中常见的操作,而随着ES6的推广,以及Vue框架的更新,现在有了更多高效且简洁的方法来完成这一任务。本文将详细讲解几种Vue中遍历数组的新方法,并通过实例代码展示如何使用这些方法。这些...
逆序对是算法学习中的一个重要概念,特别是在数据排序和相关算法中。逆序对的存在意味着在序列中存在一对数,这对数在无序序列中的位置与在有序序列中的位置相反。逆序对的数量可以用来衡量一个序列的无序程度,也是...
本文将详细介绍Lua中遍历数组和table的四种方法,并通过示例解释每种方法的具体使用场景。 首先,我们需要了解Lua中的数组和table是两种不同的数据结构。数组在Lua中其实就是一个特殊的table,它的索引是连续的数字...
### 厦门大学 C语言程序设计 第十课课件知识点总结 #### 10.0 指针概述 - **重要性**: 指针是C语言中极为重要的概念之一,也是C语言的独特之处。 - **数据结构表达**: 通过指针可以有效地表达复杂的结构。 - **...
- **使用`foreach`循环**:可以遍历数组中的所有元素。 ```php foreach ($arr as $key => $value) { echo $key . ":" . $value; } ``` 6. **数组结构打印** - **使用`print_r()`函数**:可以输出数组的结构...
在Java编程语言中,遍历数组是一个常见的操作,而决定使用`foreach`循环还是传统的`for`循环通常取决于个人偏好、代码可读性和性能需求。从JDK 1.5开始,Java引入了增强的`for`循环,也称为`foreach`循环,为数组和...
软件介绍 1、创建和修改数组 / 多维数组 2、数组与数组的函数 3、使用foreach 遍历数组 ...遍历数组很多种方法,可以使用 For循环,while循环,最巧妙的 一种遍历数组foreach给我们带来了跟多方便
10. 接口与继承:PHP中接口可以实现多继承。 11. 数组遍历:在PHP中遍历数组时,不必先计算数组长度,因为可以使用其他结束循环的条件,如`foreach`循环。 12. 多维数组:PHP中的二维数组也称为多维数组,是指包含...
在C#编程语言中,`foreach`循环是一种用于遍历集合、数组或其他可迭代对象的便利语法。在本文中,我们将深入探讨如何使用`foreach`循环遍历数组,并通过几个实例来展示其工作原理。 首先,数组是C#中存储相同类型...
遍历数组中的每个元素x,查找target-x; 代码略; 时间复杂度 O(n2) ,空间复杂度O(1) 方法二:遍历哈希表 遍历数组 中的每个元素x,索引i,判断map中是否存在 target-x 的 值,不存在就将元素及索引添加到map中, ...
4. **数组处理**:PHP中的数组是非常强大的工具,可以用来存储一组相关的数据。在网址导航站中,可能使用数组来存储网址信息,如ID、名称、URL等,然后遍历数组来显示这些信息。 5. **表单处理**:为了允许用户提交...
在Python编程中,经常需要同时访问数组(或列表)中的元素及其对应的索引。例如,在处理数据时,可能需要知道当前处理的元素位于数组中的具体位置,或者在进行文件解析时,可能需要知道某一行的具体行号以便于后续的...
历数太阳到山计算法.doc
PHP中遍历数组有三种常用的方法: 一、使用for语句循环遍历数组; 二、使用foreach语句遍历数组; 三、联合使用list()、each()和while循环遍历数组。 这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始...
foreach循环可以遍历数组中的每个元素,并且可以很容易地访问每个元素的键和值。 接下来,我们将详细介绍PHP数组中的一些重要知识点: 一、数组定义 PHP数组可以通过array()函数定义。例如,$number=array(1,3,5,7...