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 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
php使用curl模拟登录后采集页面的例子
Nov 04 PHP
php sybase_fetch_array使用方法
Apr 15 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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函数转义的安全性原理分析
2014/11/03 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
PHP大文件切割上传并带进度条功能示例
2019/07/01 PHP
window.dialogArguments 使用说明
2011/04/11 Javascript
关于JS中的闭包浅谈
2013/08/23 Javascript
js清理Word格式示例代码
2014/02/13 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
react的hooks的用法详解
2020/10/12 Javascript
vue打开其他项目页面并传入数据详解
2020/11/25 Vue.js
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
Python常见数据结构详解
2014/07/24 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
pywinauto自动化操作记事本
2019/08/26 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
入党自我鉴定
2014/03/25 职场文书
办公室岗位职责
2015/02/04 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
Win11开始菜单添加休眠选项
2022/04/19 数码科技