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与ASP
Oct 09 PHP
PHP新手上路(十三)
Oct 09 PHP
PHP文件上传原理简单分析
May 29 PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
PHP使用数组依次替换字符串中匹配项
Jan 08 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
Jan 08 PHP
Yii数据模型中rules类验证器用法分析
Jul 15 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
php+iframe 实现上传文件功能示例
Mar 04 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
深入file_get_contents函数抓取内容失败的原因分析
2013/06/25 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
PHP获取文件扩展名的方法实例总结
2017/06/10 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
python操作列表的函数使用代码详解
2017/12/28 Python
python实现机器学习之元线性回归
2018/09/06 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
详解Python3 基本数据类型
2019/04/19 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
单位委托书范本
2014/04/04 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
2015年暑假生活总结
2015/07/13 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript