PHP 数组遍历foreach语法结构及实例


Posted in PHP onJune 13, 2016

foreach()

PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。

语法:

foreach (array as $value)
  statement
// 或者:
foreach (array as $key => $value)

statement

上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量 $key。

例子:

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $age) {
  echo $age,'<br />';
}
?>

运行该例子输出:

18
20
25

使用数组键值

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $key=>$age) {
  echo $key,': ',$age,'<br />';
}
?>

运行例子输出:

wang: 18
li: 20
zhang: 25

当 foreach 开始执行时,数组内部的指针会自动指向第一个单元,这意味着不需要在 foreach 循环之前调用 reset()。

foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。对返回的数组单元的修改也不会影响原数组(见下面例子),但 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as $age) {
  $age = $age+10;
  echo $age,'<br />';
}
// 输出原数组
print_r($arr_age);
?>

运行例子输出:

28
30
35
Array ( [wang] => 18 [li] => 20 [zhang] => 25 )

要在 foreach 中修改原数组元素,可以通过引用来实现,将上面的例子更改为:

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);
foreach ($arr_age as &$age) {
  $age = $age+10;
  echo $age,'<br />';
}
// 输出原数组
print_r($arr_age);
?>

运行例子输出:

18
20
25

Array ( [wang] => 28 [li] => 30 [zhang] => 35 )

遍历多维数组

foreach 语法结构只能用于遍历一维数组,要遍历多维数组,一般是将 foreach 嵌套递归使用或者将原数组分割为一维数组再进行 foreach 遍历。

一二维数组混合的例子:

<?php
$arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25));
foreach ($arr_age as $age) {
  if(is_array($age)){
    foreach ( $age as $detail) {
    echo $detail,'<br />';
    }
  } else {
    echo $age,'<br />';
  }
}
?>

对多维数组的遍历处理就要根据实际的数据结构而采取最合适的处理方式。

PHP 数组是通过哈希表(HashTable)表实现的,因此 foreach 遍历数组时是依据元素添加的先后顺序来进行的。如果想按照索引大小遍历,应该使用 for() 循环遍历。

for() 循环遍历数组

如果是操作连续键值的数组,也可以采用 for() 循环来遍历数组:

<?php
$arr_age = array(18, 20, 25);
$num = count($arr_age);
for($i = 0; $i < $num; $i++){
  echo $arr_age[$i]."<br />";
}
?>

也可以用 list() 和 each() 结合来遍历数组,但测试发现效率不如 foreach() 。

以上这篇PHP 数组遍历foreach语法结构及实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
PHP的PSR规范中文版
Sep 28 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
Zend Framework页面缓存实例
Jun 25 PHP
php连接oracle数据库的核心步骤
May 26 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
Ubuntu上安装yaf扩展的方法
Jan 29 PHP
PHP加MySQL消息队列深入理解
Feb 27 PHP
PHP+MySQL存储数据常见中文乱码问题小结
Jun 13 #PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 #PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 #PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 #PHP
PHP 数组基本操作小结(推荐)
Jun 13 #PHP
PHP中header函数的用法及其注意事项详解
Jun 13 #PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 #PHP
You might like
冰滴咖啡制作步骤
2021/03/03 冲泡冲煮
jquery 简单的进度条实现代码
2010/03/11 Javascript
分享20款好玩的jQuery游戏
2011/04/17 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
python在每个字符后添加空格的实例
2018/05/07 Python
python操作kafka实践的示例代码
2019/06/19 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
会计专业毕业生自荐信范文
2013/12/20 职场文书
教师评优事迹材料
2014/01/10 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
应聘教师自荐信
2015/03/26 职场文书
同意转租证明
2015/06/24 职场文书
禁毒主题班会教案
2015/08/14 职场文书