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(1)
Oct 09 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
May 04 PHP
PHP读取数据库并按照中文名称进行排序实现代码
Jan 29 PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 PHP
关于JSON以及JSON在PHP中的应用技巧
Nov 27 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
详谈php中 strtr 和 str_replace 的效率问题
May 14 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
Laravel框架验证码类用法实例分析
Sep 11 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面向对象学习笔记之一 基础概念
2012/10/06 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
python代码区分大小写吗
2020/06/17 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
appium+python自动化配置(adk、jdk、node.js)
2020/11/17 Python
求职信内容考虑哪几点
2013/10/05 职场文书
八一建军节感言
2014/02/28 职场文书
初中军训感想300字
2014/03/05 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python