• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php数组遍历_php

php 搞代码 3年前 (2018-06-21) 84次浏览 已收录 0个评论
 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 ' ';     }     //如果想要打印CHNAGE,那么可以使用     //if($array[$key] == 'CHANGE')     //上面的取出的才是数组实际元素的值,使用$value取出的是array数组的原始值的副本     if($value === CHANGE)           echo $value.' '; } 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 ' ';     }     //如果想要打印CHNAGE,那么可以使用     if($array[$key] == 'CHANGE')         echo $value.' '; } 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)     statement foreach (array_expression as $key => $value)     statement 

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value(创建一个副本) 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key(创建一个副本)。

Note:

当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset() 。

由于 foreach 依赖内部数组指针,在循环中修改其值将可能导致意外的行为。

可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。

 

注意:数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。

欢迎大家阅读php数组遍历_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址