PHP遍历数组的几种方法

 更新时间:2012年03月22日 22:58:14   作者:  
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法
PHP中遍历数组有三种常用的方法:
一、使用for语句循环遍历数组;
二、使用foreach语句遍历数组;
三、联合使用list()、each()和while循环遍历数组。
这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。先分别介绍这几种方法。

一、使用for语句循环遍历数组
值得大家注意的是使用for语句循环遍历数组要求遍历的数组必须是索引数组。PHP中不仅有关联数组而且还有索引数组,所以PHP中很少用for语句循环遍历数组。
实例代码如下:
复制代码 代码如下:

<?php
$arr = array('https://www.jb51.net','脚本之家','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://www.jb51.net
脚本之家
PHP教程

二、使用foreach语句遍历数组
使用foreach语句循环遍历数组有二种方式,我们使用的最多的还是第一种方式。介绍如下:
第一种方式:
foreach(array_expression as $value){
//循环体
}
实例代码:
复制代码 代码如下:

<?php
$arr = array('https://www.jb51.net','脚本之家','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>


每次循环中,当前元素的值被赋给变量$value,并且把数组内部的指针向后移动一步。所以下一次循环中会得到数组的下一个元素,直到数组的结尾才停止循环,结束数组的遍历。

第二种方式:
foreach(array_expression as $key=>$value){
//循环体
}
实例代码:
复制代码 代码如下:

<?php
//定义数组
$arr = array('https://www.jb51.net','脚本之家','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>


三、联合使用list()、each()和while循环遍历数组
each()函数需要传递一个数组作为一个参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。
list()函数,这不是一个真正的函数,是PHP的一个语言结构。list()用一步操作给一组变量进行赋值。

实例代码:
复制代码 代码如下:

<?php
//定义循环的数组
$arr = array('website'=>'https://www.jb51.net','webname'=>'脚本之家')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?> jb51.net

输出结果为:
website=>https://www.jb51.net
webname=>PHP程序员

总结:上述三种循环遍历数组的方法中建议大家使用foreach语句循环遍历数组,效率更高。

相关文章

  • php输出形式实例整理

    php输出形式实例整理

    在本篇文章里小编给大家分享了关于php输出形式实例内容,需要的朋友们可以参考学习下。
    2020-05-05
  • PHP使用ffmpeg给视频增加字幕显示的方法

    PHP使用ffmpeg给视频增加字幕显示的方法

    这篇文章主要介绍了PHP使用ffmpeg给视频增加字幕显示的方法,实例分析了php操作ffmpeg给视频增加字母的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • php数组分页实现方法

    php数组分页实现方法

    这篇文章主要介绍了php数组分页实现方法,涉及php数组操作、数学运算及字符串操作等相关技巧,需要的朋友可以参考下
    2016-04-04
  • php中通过curl检测页面是否被百度收录

    php中通过curl检测页面是否被百度收录

    最近要对网站做个整理,需要检测网站内哪些页面没有被百度搜索引擎收录从而进行相关的调整。由于使用site命令一条条的去看实在是看不过来,就想到了使用php程序来批量处理一下
    2013-09-09
  • 基于PHP开发中的安全防范知识详解

    基于PHP开发中的安全防范知识详解

    本篇文章是对PHP开发中的安全防范知识进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP代码优化的53个细节

    PHP代码优化的53个细节

    这篇文章主要介绍了PHP代码优化的53个细节,常见而重要的php优化策略,需要的朋友可以参考下
    2014-03-03
  • Could not load type System.ServiceModel.Activation.HttpModule解决办法

    Could not load type System.ServiceModel.Activation.HttpModul

    本文章来详细介绍关于Could not load type System.ServiceModel.Activation.HttpModule from assembly System.ServiceModel解决办法,有需要的朋友可参考
    2012-12-12
  • php 传值赋值与引用赋值的区别

    php 传值赋值与引用赋值的区别

    引用赋值:这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。
    2010-12-12
  • php遍历数组的方法分享

    php遍历数组的方法分享

    php下最灵活的东西就是数组,很多数据都是通过数组的方式显示,整理下数组的遍历方法
    2012-03-03
  • 防止MySQL注入或HTML表单滥用的PHP程序

    防止MySQL注入或HTML表单滥用的PHP程序

    据悉,如果表单无担保,MySQL形式的恶意代码注入将攻击网站。HTML表单如下拉菜单,搜索框和复选框都容易成为这类型侵入的切入点。本文将解释所发生的这种攻击,以及如何防止它。已知的安全事项和背景。
    2009-01-01

最新评论