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 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
php 无限级数据JSON格式及JS解析
Jul 17 PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
Chrome Web App开发小结
Sep 04 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
php获取当前url地址的方法小结
Jan 10 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
php访问对象中的成员的实例方法
Nov 17 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中mb_strpos的使用
2018/02/04 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
IE8 中使用加速器(Activities)
2010/05/14 Javascript
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
Vue组件中prop属性使用说明实例代码详解
2018/05/31 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
python实现KNN分类算法
2019/10/16 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
十岁生日父母答谢词
2014/01/18 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
毕业典礼邀请函
2015/01/31 职场文书
2015年“七七卢沟桥事变”纪念活动总结
2015/03/24 职场文书
2015年老干部工作总结
2015/04/23 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书