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调用Oracle存储过程
Oct 09 PHP
PHP新手上路(十四)
Oct 09 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
PHP中的Streams详细介绍
Nov 12 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
php-msf源码详解
Dec 25 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
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中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
利用php绘制饼状图的实现代码
2013/06/07 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
判断多个元素(RADIO,CHECKBOX等)是否被选择的原理说明
2009/02/18 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python递归查询菜单并转换成json实例
2017/03/27 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Python常用数据分析模块原理解析
2020/07/20 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
Big Green Smile德国网上商店:提供各种天然产品
2018/05/23 全球购物
肯尼迪就职演说稿
2013/12/31 职场文书
竞聘演讲稿
2014/04/24 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
企业法律事务工作总结
2015/08/11 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
乔迁新居祝福语
2019/11/04 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
浅谈Python数学建模之固定费用问题
2021/06/23 Python
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js