PHP遍历数组的几种方法


Posted in PHP onMarch 22, 2012

PHP中遍历数组有三种常用的方法:
一、使用for语句循环遍历数组;
二、使用foreach语句遍历数组;
三、联合使用list()、each()和while循环遍历数组。
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。

一、使用for语句循环遍历数组
值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组,所以PHP中很少用for语句循环遍历数组。
实例代码如下:

<?php 
$arr = array('https://3water.com','三水点靠木','PHP教程'); 
$num = count($arr); 
for($i=0;$i<$num;++$i){ 
echo $arr[$i].'<br />'; 
} 
?>

注释:上例代码中我们先计算出数组$arr中元素的个数,然后才使用在for语句,这样做很高效的。因为如果是for($i=0;$i< count($arr);++$i)的话,每次循环都会计算数组$arr中元素的个数,而使用上面的方式可以减去这种开销。使用++$i也是为了提高效率,前面有文章我们提到过,建议大家再看看。
上面代码的输出结果为:
https://3water.com
三水点靠木
PHP教程

二、使用foreach语句遍历数组
使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下:
第一种方式:
foreach(array_expression as $value){
//循环体
}
实例代码:

<?php 
$arr = array('https://3water.com','三水点靠木','PHP教程'); 
foreach($arr as $value){ 
echo $value.'<br />'; 
} 
?>

每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。

第二种方式:
foreach(array_expression as $key=>$value){
//循环体
}
实例代码:

<?php 
//定义数组 
$arr = array('https://3water.com','三水点靠木','PHP教程'); 
foreach($arr as $k=>$v){ 
echo $k."=>".$v."<br />"; 
} 
?>

三、联合使用list()、each()和while循环遍历数组
each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。
list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。

实例代码:

<?php 
//定义循环的数组 
$arr = array('website'=>'https://3water.com','webname'=>'三水点靠木') 
while(list($k,$v) = each($arr)){ 
echo $k.'=>'.$v.'<br />'; 
} 
?> 3water.com

输出结果为:
website=>https://3water.com
webname=>PHP程序员

总结:上述三种循环遍历数组的方法中建议大家使用foreach语句循环遍历数组,效率更高。

PHP 相关文章推荐
PHP 字符串 小常识
Jun 05 PHP
PHP 存储文本换行实现方法
Jan 05 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 PHP
Thinkphp的volist标签嵌套循环使用教程
Jul 08 PHP
destoon实现调用热门关键字的方法
Jul 15 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
PHP使用redis实现统计缓存mysql压力的方法
Nov 14 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
实例讲解通过​PHP创建数据库
Jan 20 PHP
PHP实现的数据对象映射模式详解
Mar 20 PHP
php遍历数组的方法分享
Mar 22 #PHP
php中大括号作用介绍
Mar 22 #PHP
那些年一起学习的PHP(三)
Mar 22 #PHP
那些年一起学习的PHP(二)
Mar 21 #PHP
那些年一起学习的PHP(一)
Mar 21 #PHP
ecshop 批量上传(加入自定义属性)
Mar 20 #PHP
批量去除PHP文件中bom的PHP代码
Mar 13 #PHP
You might like
php中的时间显示
2007/01/18 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
python基础教程项目三之万能的XML
2018/04/02 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
django如何通过类视图使用装饰器
2019/07/24 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
青年创业培训欢迎词
2014/01/08 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
促销活动总结报告
2014/04/26 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
JavaScript 定时器详情
2021/11/11 Javascript
Spring Boot 实现 WebSocket
2022/04/30 Java/Android