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 相关文章推荐
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
yii实现创建验证码实例解析
Jul 31 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
smarty模板引擎之配置文件数据和保留数据
Mar 30 PHP
php里array_work用法实例分析
Jul 13 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
PHP PDOStatement::errorCode讲解
Jan 31 PHP
Laravel框架自定义分页样式操作示例
Jan 26 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获取表单textarea数据中的换行问题
2010/09/10 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
Python学习笔记之常用函数及说明
2014/05/23 Python
Python数组条件过滤filter函数使用示例
2014/07/22 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
python Pexpect模块的使用
2020/12/25 Python
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
幼儿园消防安全制度
2014/01/26 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
离婚案件原告代理词
2015/05/23 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
分析设计模式之模板方法Java实现
2021/06/23 Java/Android