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 相关文章推荐
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
Jun 14 PHP
php实现执行某一操作时弹出确认、取消对话框
Dec 30 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
php集成开发环境详解
2019/09/24 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
新浪的图片新闻效果
2007/01/13 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
详解vue组件基础
2018/05/04 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
简单了解python PEP的一些知识
2019/07/13 Python
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android