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设计聊天室步步通
Oct 09 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
PHP 年龄计算函数(精确到天)
Jun 07 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
yii的CURD操作实例详解
Dec 04 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
php创建多级目录的方法
Mar 24 PHP
php 防止表单重复提交两种实现方法
Nov 03 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP递归算法的简单实例
Feb 28 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
2017/04/13 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
JavaScript观察者模式原理与用法实例详解
2020/03/10 Javascript
python数组过滤实现方法
2015/07/27 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Python3 replace()函数使用方法
2018/03/19 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Python面向对象编程基础实例分析
2020/01/17 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
学生党支部先进事迹
2014/02/04 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
信用卡工作证明模板
2014/09/14 职场文书
优秀团员事迹材料
2014/12/25 职场文书
护理专业自荐信范文
2015/03/06 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
SpringRetry重试框架的具体使用
2021/07/25 Java/Android
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js