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 相关文章推荐
一个程序下载的管理程序(三)
Oct 09 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP读取word文档的方法分析【基于COM组件】
Aug 01 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 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通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
php常用图片处理类
2016/03/16 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
php实现图片压缩处理
2020/09/09 PHP
javascript document.referrer 用法
2009/04/30 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
你真的了解Python的random模块吗?
2017/12/12 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
Tesserocr库的正确安装方式
2018/10/19 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
社区工作者感言
2014/03/02 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
费用申请报告范文
2015/05/15 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
Pyhton模块和包相关知识总结
2021/05/12 Python
pytorch中的numel函数用法说明
2021/05/13 Python
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android