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通过COM使用ADODB的简单例子
Dec 31 PHP
php中文本操作的类
Mar 17 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
Php header()函数语法及使用代码
Nov 04 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 PHP
PHP自定义函数获取汉字首字母的方法
Dec 01 PHP
浅析PHP数据导出知识点
Feb 17 PHP
PHP的mysqli_thread_id()函数讲解
Jan 24 PHP
浅谈Laravel中的三种中间件的作用
Oct 13 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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 防恶意刷新实现代码
2010/05/16 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
jQuery 名称冲突的解决方法
2011/04/08 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
react高阶组件经典应用之权限控制详解
2017/09/07 Javascript
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
python实现DES加密解密方法实例详解
2015/06/30 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
python flask安装和命令详解
2019/04/02 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
python实现双人五子棋(终端版)
2020/12/30 Python
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
初二生物教学反思
2014/02/03 职场文书
便利店投资创业计划书
2014/02/08 职场文书
党员承诺书范文
2014/05/19 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
PyTorch dropout设置训练和测试模式的实现
2021/05/27 Python