1.代码:

  1. <?php
  2. $arr = array('one','two','three');
  3.  
  4. foreach ($arr as $value){
  5. echo 'Value:'.$value.'<br />';
  6. }
  7. echo '<hr/>';
  8.  
  9. foreach ($arr as &$value){
  10. echo 'Value:'.$value.'<br />';
  11. }
  12. echo '<hr/>';
  13. // reset($arr);
  14.  
  15. foreach ($arr as $value){
  16. echo 'Value:'.$value.'<br />';
  17. }
  18.  
  19. ?>

2.结果

aaarticlea/png;base64,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" alt="" />

3.原因:

  1. 第一次带&的foreach并没有改变数组的内容。。
    而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),
    在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。
    第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,
    所以
    第一次循环把one赋值给了最后一个值,
    第二次把two赋值给最后一个,
    第三次也就是最后一个已经在第二次循环被赋值为two,所以仍然是two
 

php中数组中&的问题的更多相关文章

  1. JavaScript中数组中的方法:push()、pop()、shift()、unshift()、slice()、splice()、reverse()、join()、split()、concat()、indexOf()、forEach()、map()、

      1.创建数组的几种方法 //a).通过new来创建数组,new可以省略 var arr=new Array(); var arr=Array(); //b). .通过new来创建数组,并且赋值 v ...

  2. JavaScript中数组中遍历的方法

    前言 最近看了好几篇总结数组中遍历方法的文章,然而"纸上得来终觉浅",决定此事自己干.于是小小总结,算是自己练手了. 各种数组遍历方法 数组中常用的遍历方法有四种,分别是: for ...

  3. java中数组中一些方法的总结

    这个方法可以控制复制原数组的长度,想要复制多少就可以复制多少 这种复制方法不是特别灵活.只能复制整个数组或者对数组从首部开始进行截取.无法灵活的想复制哪里就复制哪里.因此一般用在数组的扩容上. jdk ...

  4. 接口返回值中数组中包含多个json对象形式

    返回数据Json: { "code": , "msg": "成功", "departmentlist": [ { &qu ...

  5. matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段

    一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...

  6. js从数组中随机取出不同的元素

    前言 上午处理个需求需要从一个总数组中随机取出不同的元素.共使用两个方法.第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应 ...

  7. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. [LeetCode] Find All Duplicates in an Array 找出数组中所有重复项

    Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others ...

  9. [LeetCode] Kth Largest Element in an Array 数组中第k大的数字

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

随机推荐

  1. Java程序的结构

    1.由一个或多个独立的类组成: 2.最多一个公有类 3.源代码文件名必须与类名相同 4.类由一个或多个方法组成,其中公有类中的main()方法作为程序的入口. 注:javaSE中一定有main方法. ...

  2. Android常用酷炫控件(开源项目)github地址汇总

    转载一个很牛逼的控件收集帖... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.Gri ...

  3. 企业建站系统MiinCMP1.0.5 标准版公布!

    2014-5-6日,Juuluu公布其企业建站系统MiinCMP1.0.5 标准版,1.0.5是一款相对成熟的企业站点解决方式.执行MiinCMP1.0.5,仅仅需2M的mysql,50m的java空 ...

  4. 【Pyhton 数据分析】通过gensim进行文本相似度分析

    环境描述 Python环境:Python 3.6.1 系统版本:windows7 64bit 文件描述 一共有三个文件,分别是:file_01.txt.file_02.txt.file_03.txt ...

  5. LR11.5 安卓模拟器性能测试

    LR11.5 安卓模拟器性能测试 上一篇 / 下一篇  2013-07-04 08:07:19 / 个人分类:相关知识 查看( 1172 ) / 评论( 1 ) / 评分( 0 / 0 ) 1.首先下 ...

  6. Spring+Hibernate整合

    因为整合spring和hibernate所以,需要用到spring里面复写Hibernate的类以有DI和IOC特性 db.sql hibernate_basic数据库 表 person 字段 pid ...

  7. 采集Snoopy.class.php

    <?php /************************************************* Snoopy - the PHP net client Author: Mont ...

  8. unity3d控制主摄像头移动

    这篇很水,因为就只有一行代码==: Camera.main.transform.Translate (Vector3.forward); 这行代码控制主摄像头向前移动,其它的如下: up:向上 dow ...

  9. C# 取字符串中间文本 取字符串左边 取字符串右边

    好像是第二种效率高一点,取str字符串中123左边的所有字符:第一种Between(str,"","123"),而第二种是Between(str,null,&q ...

  10. QT Unexpected CDB exit 问题的解决办法

    行QT进行debug时,提示 Unexpected CDB exit ,The CBD process terminated.. QtCreator 默认是没有调试器的,因此需要用户额外安装. win ...