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 常见郁闷问题答解
Nov 25 PHP
php利用header函数实现文件下载时直接提示保存
Nov 12 PHP
在PHP中实现Javascript的escape()函数代码
Aug 08 PHP
完美实现GIF动画缩略图的php代码
Jan 02 PHP
PHP简洁函数小结
Aug 12 PHP
php操作xml
Oct 27 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
php实现session共享的实例方法
Sep 19 PHP
PHP如何通过date() 函数格式化显示时间
Nov 13 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
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php实现搜索类封装示例
2016/03/31 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
JS中的phototype详解
2017/02/04 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python龙贝格法求积分实例
2020/02/29 Python
调整Jupyter notebook的启动目录操作
2020/04/10 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
纪检干部现实表现材料
2014/08/21 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
导游词之南京中山陵
2019/11/27 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers