PHP中的函数-- foreach()的用法详解
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 foreach遍历多维数组实现方式
介绍 正常我们的foreach可以按顺序把一维数组里面每个 key => value 打印出来,但是如果是多维数组则需要循环在嵌套循环,或则递归实现,但是这些方式都不够灵活,因为在不确定该数组是几维的情况下,不可能永无止境的嵌套循环,如果采用递归到可以解决,但是如果只想使用foreach全部循环出来该如何实现? 实现方式 一 采用PHP本身自带的迭代器类 RecursiveIteratorIterator $test_arr = array(1,2,3,array(4,'aa'=>5,6,ar
-
PHP中for循环与foreach的区别
for循环与foreach的区别 foreach 依赖 IEnumerable. 第一次 var a in GetList() 时调用 GetEnumerator 返回第一个对象并赋给a, 以后每次再执行 var a in GetList() 的时候调用 MoveNext.直到循环结束. 期间GetList()方法只执行一次. + View Code for 循环靠下标定位. list[3] 相当于 *(list + 3). + View Code or 循环每次循环会调用 GetCoun
-
ThinkPHP之foreach标签使用概述
ThinkPHP模板的foreach标签用于在模板中循环输出数据集或者对对象进行遍历输出. 相对于volist标签而言,foreach标签没有volist标签那么多的功能,却可以对对象进行遍历输出,而volist标签通常是用于输出数组. foreach标签用法如下: <foreach name="list" item="vo"> 用 户 名:{$vo.username}<br /> 电子邮件:{$vo.email}<br /> 注
-
php foreach正序倒序输出示例代码
实现代码: // 正序 foreach($files as $file_num => $file) { if(is_file($directory.$file)){ //$file = iconv("gb2312","UTF-8",$file); //或者 iconv("gb2312","UTF-8",$value); $date = substr($file,0,9); echo '<li class="
-
php循环语句 for()与foreach()用法区别介绍
for 循环是 PHP 中最复杂的循环结构.它的行为和 C 语言的相似. for 循环的语法是: for (expr1; expr2; expr3) statement 第一个表达式(expr1)在循环开始前无条件求值一次. expr2 在每次循环开始前求值.如果值为 TRUE,则继续循环,执行嵌套的循环语句.如果值为 FALSE,则终止循环. expr3 在每次循环之后被求值(执行). 每个表达式都可以为空.expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE).这
-
PHP 数组遍历方法大全(foreach,list,each)
在PHP中数组分为两类: 数字索引数组和关联数组. 其中数字索引数组和C语言中的数组一样,下标是为0,1,2- 而关联数组下标可能是任意类型,与其它语言中的hash,map等结构相似. 下面介绍PHP中遍历关联数组的三种方法: 方法1:foreach 复制代码 代码如下: <?php $sports = array( 'football' => 'good', 'swimming' => 'very well', 'running' => 'not good'); foreach
-
深入解析PHP中foreach语句控制数组循环的用法
foreach是PHP中很常用的一个用作数组循环的控制语句. 因为它的方便和易用,自然也就在后端隐藏着很复杂的具体实现方式(对用户透明) 今天,我们就来一起分析分析,foreach是如何实现数组(对象)的遍历的. 我们知道PHP是一个脚本语言,也就是说,用户编写的PHP代码最终都是会被PHP解释器解释执行, 特别的,对于PHP来说,所有的用户编写的PHP代码,都会被翻译成PHP的虚拟机ZE的虚拟指令(OPCODES)来执行,不论细节的话,就是说,我们所编写的任何PHP脚本,都会最终被翻译成一条条
-
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
本文实例讲述了php下foreach()错误提示Warning: Invalid argument supplied for foreach() 的解决方法.分享给大家供大家参考.具体实现方法如下: 一.问题: php下foreach()错误提示Warning: Invalid argument supplied for foreach() 错误提示:Warning: Invalid argument supplied for foreach() in E:wampwwwmyshopcart.p
-
sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
语法 REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' ) 参数说明 'string_expression1' 待搜索的字符串表达式.string_expression1 可以是字符数据或二进制数据. 'string_expression2' 待查找的字符串表达式.string_expression2 可以是字符数据或二进制数据. 'string_expression3' 替换
-
PHP 数组遍历foreach语法结构及实例
foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误. 语法: foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement 上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步.在第二种语法格式中还将当前单元的键名也会在每次
随机推荐
- 点击下载链接 弹出页面实现代码
- AngularJS封装$http.post()实例详解
- java图片缩放实现图片填充整个屏幕
- IOS开发中异步网络请求上实现同步逻辑
- Oracle数据库的空间管理技巧
- JavaScript切换搜索引擎的导航网页搜索框实例代码
- Android开发之ClipboardManager剪贴板功能示例
- JavaScript实现页面5秒后自动跳转的方法
- PHP面向对象学习笔记之一 基础概念
- shell 中数学计算总结
- Microsfot .NET Framework4.0框架 安装失败的解决方法
- 图片加密
- sql清空表数据后重新添加数据存储过程的示例
- MySQL数据库远程连接很慢的解决方案
- jquery简单插件制作(fn.extend)完整实例
- Node.JS更改Windows注册表Regedit的方法小结
- Javascript通过overflow控制列表闭合与展开的方法
- Java编程思想里的泛型实现一个堆栈类 分享
- Java将字节转换为十六进制代码分享
- c#读取文件详谈