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编程之高级技巧——利用Mysql函数
Oct 09 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
推荐十款免费 WordPress 插件
Mar 24 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
Dec 17 PHP
CI(CodeIgniter)模型用法实例分析
Jan 20 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 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导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
php实现读取超大文件的方法
2014/07/28 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
列举Python中吸引人的一些特性
2015/04/09 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
Django权限机制实现代码详解
2018/02/05 Python
基于pip install django失败时的解决方法
2018/06/12 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python利用opencv保存、播放视频
2020/11/02 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
体育老师的教学自我评价分享
2013/11/19 职场文书
班组长安全职责
2014/01/05 职场文书
2014年协会工作总结
2014/11/22 职场文书
新郎结婚保证书
2015/02/26 职场文书
英语辞职信范文
2015/02/28 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
Golang 并发编程 SingleFlight模式
2022/04/26 Golang