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 相关文章推荐
实用函数3
Nov 08 PHP
php中引用符号(&amp;)的使用详解
Nov 13 PHP
php解析url的三个示例
Jan 20 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
php中动态变量用法实例
Jun 10 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
PHP count()函数讲解
Feb 03 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
js页面跳转常用的几种方式
2010/11/25 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
2015/03/04 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
巧用canvas
2017/01/21 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
Python3实现定时任务的四种方式
2019/06/03 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
2019/06/05 Python
tornado+celery的简单使用详解
2019/12/21 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
python网络编程之五子棋游戏
2020/05/14 Python
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
护理专业推荐信
2013/11/07 职场文书
英文邀请函
2015/02/02 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS