php数组遍历
来源:互联网 发布:如何提高淘宝店铺的销量 编辑:程序博客网 时间:2024/06/10 06:16
<?php/* * 此程序是对php数组的操作,主要是在遍历时修改数组的值 *//*$array = array("A"=>1, "B"=>1, "C"=>1, "D"=>1);foreach($array as $key => $value){ if($key == "B"){ $array["A"] = "CHANGE"; $array["D"] = "CHANGE"; print_r($array); echo '<br />'; } //如果想要打印CHNAGE,那么可以使用 //if($array[$key] == 'CHANGE') //上面的取出的才是数组实际元素的值,使用$value取出的是array数组的原始值的副本 if($value === "CHANGE") echo $value.'<br />';}print_r($array);*//* * 结果是 * Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE ) Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE ) * */$array = array("A"=>1, "B"=>1, "C"=>1, "D"=>1);foreach($array as $key => $value){ if($key == "B"){ $array["A"] = "CHANGE"; $array["D"] = "CHANGE"; print_r($array); echo '<br />'; } //如果想要打印CHNAGE,那么可以使用 if($array[$key] == 'CHANGE') echo $value.'<br />';}print_r($array);/* * 结果是 * Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE ) 1(这里的1是数组原始的键对应的值) Array ( [A] => CHANGE [B] => 1 [C] => 1 [D] => CHANGE ) */
注意:除非数组被引用,foreach操作的是执行数组的一个拷贝,不是数组本身,而且在遍历的过程中对数组元素的修改不会影响到该副本(感觉就像在遍历之前就将数组进行了一次拷贝,遍历时操作的是数组副本)。foreach对数组指针有些副作用,除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。只要在foreach中,直接按照键取$array中的元素进行各种判断赋值操作就可以了。
参见php foreach手册
foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:
foreach (array_expression as $value) statementforeach (array_expression as $key => $value) statement
第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value(创建一个副本) 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key(创建一个副本)。
Note:
当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset() 。
由于 foreach 依赖内部数组指针,在循环中修改其值将可能导致意外的行为。
可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php$arr = array( 1 , 2 , 3 , 4 );foreach ( $arr as & $value ) { $value = $value * 2 ;}// $arr is now array(2, 4, 6, 8)unset( $value ); // 最后取消掉引用?>
注意:数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。
0 0
- PHP foreach遍历数组
- php多维数组遍历
- php遍历数组
- php 数组遍历
- pHp学习--数组遍历
- php 数组遍历foreach
- PHP数组的遍历
- PHP函数遍历数组
- php数组遍历
- PHP数组的遍历
- php遍历数组
- php数组遍历
- php数组遍历
- PHP 数组遍历方法
- php中的数组遍历
- php 数组 广度遍历
- php 数组 深度遍历
- php 数组遍历
- 避免碌碌无为的感觉
- AndroidAnnotations在Android Studio中的配置
- 在linux 下安装sublime text 2
- javascrip cookie
- 黑马程序员-OC语言-封装的实现步骤(听课笔记)
- php数组遍历
- 如果细节决定成败,那么什么决定细节
- How to use JUnit in Eclipse?
- zookeeper原理
- mysql模糊查询
- Nginx代理文件配置
- 黑马程序员-----集合
- JVM介绍
- Linux面试题(1)