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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
在PHP中养成7个面向对象的好习惯
Jul 17 PHP
PHP函数getenv简介和使用实例
May 12 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
php实现转换ubb代码的方法
Jun 18 PHP
PHP微信开发之查询微信精选文章
Jun 23 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 PHP
php获取微信openid方法总结
Oct 10 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执行速率优化技巧小结
2008/03/15 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
2016/01/04 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
使用Python生成XML的方法实例
2017/03/21 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
医生实习工作总结的自我评价
2013/09/27 职场文书
学习新党章思想汇报
2014/01/09 职场文书
初中生期末评语大全
2014/04/24 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
县委常委班子专题民主生活会查摆问题及整改措施
2014/09/27 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2015年除四害工作总结
2015/07/23 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
详解Python中下划线的5种含义
2021/07/15 Python
MySQL数据库必备之条件查询语句
2021/10/15 MySQL