php数组遍历

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() 来将其销毁。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, 循环
, 循环引用
, array
, foreach
, value
, foreach 数组循环
, foreach赋值
, 遍历foreach
, Change
, js数组遍历foreach
, foreach遍历数组
, 数组拷贝
foreach遍历
php数组、php二维数组遍历、php多维数组遍历、php foreach、php,以便于您获取更多的相关知识。

时间: 2024-09-08 14:02:23

php数组遍历的相关文章

java数组遍历 删除remove(示例代码)_java

废话不多说,直接上代码 复制代码 代码如下: package com.b; import java.util.ArrayList; //数组遍历删除,添加 public class Core2 {     private String name;     private int num;     private String color;     public Core2() {     }     public Core2(String a, int b, String c) {       

IE8对JS通过属性和数组遍历解析不一样的地方探讨_javascript技巧

以文谨记在此被浏览器版本差异的坑. 复制代码 代码如下: Array.prototype.Contains = function (str) { if (!str) return false; for (var i = 0; i < this.length; i++) { if (this[i] == str) { return true; } } return false; } var tmp = new Array(); tmp.push("1"); tmp.push(&qu

asp.net C#数组遍历、排序、删除元素、插入、随机元素

asp教程.net c#数组遍历.排序.删除元素.插入.随机元素 数组遍历 short[] sts={0,1,100,200}; for(int i=0;i<sts.lenght;i++) {   if(sts[i]>50)  {   .....   } } 数组随机元素 public  hashtable  noorder(int count)         {             arraylist mylist = new arraylist();             hash

PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)_php实例

一.数组遍历的3个方法介绍 1. foreach() foreach()是一个用来遍历数组中数据的最简单有效的方法. #example1: 复制代码 代码如下: <?php $colors= array('red','blue','green','yellow'); foreach ($colorsas$color){ echo "Do you like $color? <br />"; } ?> 显示结果: Do you like red? Do you li

jquery进行数组遍历如何跳出当前的each循环_jquery

最近在忙着进行官网改版,在做其中的一个项目时碰到了一个小问题.问题是这样的,通过 jquery 的循环方法进行数组遍历,但是当不符合条件时,怎么跳出当前循环. 我是使用 $.each() 进行数组循环遍历,但是当进入判断时,不清楚该如何跳出当前循环,于是我就用 javascript 的方法--continue 发现并不正确.API 上的说明只有跳出整个循环(如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略.) 后来上网查了下,得到了结果: return false;-

JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍_javascript技巧

•原理: •高级浏览器支持forEach方法 语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文: •forEach:用来遍历数组中的每一项:这个方法执行是没有返回值的,对原来数组也没有影响: •数组中有几项,那么传递进去的匿名回调函数就需要执行几次: •每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当前项的索引index,原始数组input: •理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行

PHP 数组遍历foreach语法结构及实例_php实例

foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误. 语法: foreach (array as $value) statement // 或者: foreach (array as $key => $value) statement 上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步.在第二种语法格式中还将当前单元的键名也会在每次

Angular ng-repeat 对象和数组遍历实例_AngularJS

直接上代码 <!DOCTYPE html> <html> <head> <meta name="description" content="[Ngrepeat in obj and arr]"> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.min.js"></script

PHP多维数组遍历方法(2种实现方法)_php技巧

本文实例讲述了PHP多维数组遍历方法.分享给大家供大家参考,具体如下: 方法一: $a=array('fruits'=>array('a'=>'orange', 'b'=>'grape',c=>'apple'), 'numbers'=>array(1,2,3,4,5,6), 'holes'=>array('first',5=>'second','third') ); foreach($a as $list=>$things){ if(is_array($th