PHP中的函数-- foreach()的用法详解


Posted in PHP onJune 24, 2013

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
自PHP 5 起,还可能遍历对象。

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

注意:
除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>

此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。
<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

PHP 相关文章推荐
PHP 编程请选择正确的文本编辑软件
Dec 21 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
Aug 19 PHP
支持php4、php5的mysql数据库操作类
Jan 10 PHP
PHP 字符串 小常识
Jun 05 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
php代码书写习惯优化小结
Jun 20 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 #PHP
PHP错误提示的关闭方法详解
Jun 23 #PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 #PHP
关于zend studio 出现乱码问题的总结
Jun 23 #PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 #PHP
PHP获取MSN好友列表类的实现代码
Jun 23 #PHP
使用php统计字符串中中英文字符的个数
Jun 23 #PHP
You might like
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
Vue实现导航栏菜单
2020/08/19 Javascript
python 正则式使用心得
2009/05/07 Python
Django在Win7下的安装及创建项目hello word简明教程
2014/07/14 Python
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
bpython 功能强大的Python shell
2016/02/16 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python基本语法练习实例
2017/09/19 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
python批量解压zip文件的方法
2019/08/20 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
python eventlet绿化和patch原理
2020/11/21 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
c/c++某大公司的两道笔试题
2014/02/02 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
高中军训感言1000字
2014/03/01 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis