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 相关文章推荐
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
php生成静态页面的简单示例
Apr 17 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
yii框架搜索分页modle写法
Dec 19 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP实现浏览器格式化显示XML的方法示例
Jan 22 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
Jun 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
php 随机生成10位字符代码
2009/03/26 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
javascript的函数
2007/01/31 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码
2017/09/07 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
python实现随机梯度下降(SGD)
2020/03/24 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
架构师岗位职责
2013/11/18 职场文书
心得体会范文
2014/01/04 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
党建工作整改措施
2014/10/28 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
工作失职检讨书
2015/01/26 职场文书
实习单位推荐信
2015/03/27 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python