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中的 == 运算符进行字符串比较
Nov 26 PHP
简单的过滤字符串中的HTML标记
Dec 25 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
Yii框架登录流程分析
Dec 03 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
CI框架中类的自动加载问题分析
Nov 21 PHP
PHP常用函数总结(180多个)
Dec 25 PHP
Yii框架分页技术实例分析
Aug 30 PHP
设定php简写功能的方法
Nov 28 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
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
详解Vue组件之间的数据通信实例
2017/06/17 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
python实现图片批量剪切示例
2014/03/25 Python
wxPython中文教程入门实例
2014/06/09 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python并发编程多进程 模拟抢票实现过程
2019/08/20 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
python如何调用百度识图api
2020/09/29 Python
HTML5 embed标签定义和用法详解
2014/05/09 HTML / CSS
深入了解canvas在移动端绘制模糊的问题解决
2019/04/30 HTML / CSS
SIDESTEP荷兰:在线购买鞋子
2019/11/18 全球购物
师德师风承诺书
2014/05/23 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang