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转成EXE文件
Oct 09 PHP
第九节--绑定
Nov 16 PHP
默默小谈PHP&amp;MYSQL分页原理及实现
Jan 02 PHP
php获取post中的json数据的实现方法
Jun 08 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
PHP实现的函数重载功能示例
Aug 03 PHP
如何在PHP中生成随机数
Jun 04 PHP
PHP 实现链式操作
Mar 09 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微信开发之二维码生成类
2015/06/26 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
js取模(求余数)隔行变色
2014/05/15 Javascript
js选择并转移导航菜单示例代码
2014/08/19 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
什么是Python包的循环导入
2020/09/08 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
移动端html5模拟长按事件的实现方法
2018/09/30 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
什么是组件架构
2016/05/15 面试题
大学生个人自荐信
2014/02/24 职场文书
英文求职信范文
2014/05/23 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
党员承诺书范文2015
2015/04/27 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL