1.代码:

<?php
$arr = array('one','two','three'); foreach ($arr as $value){
echo 'Value:'.$value.'<br />';
}
echo '<hr/>'; foreach ($arr as &$value){
echo 'Value:'.$value.'<br />';
}
echo '<hr/>';
// reset($arr); foreach ($arr as $value){
echo 'Value:'.$value.'<br />';
} ?>

2.结果

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAL0AAAD4CAIAAAA2IHC4AAAIBklEQVR4nO3d7ZHiOhCFYTJSPlvlgJyNM9gkyIf7A7D10S3sM2Jvq+Z9/rEwsmt8Vgis7rk9gOtu//cJYErkBgpyAwW5gYLcQEFuoCA3UAzMzbbcbrdlGzcg4ipy4175+5put7Teu0ORm1+knG+cS38qNuTmN6nep8xrfy425OY3qdc323KrM3JfU5mHbbntsn/Pc9NGbVuMf2hGua/p5h+sGOB9iOwFdWidE8XPNevi5opXsbmvqbzK+2uv5KaYm7IHZW6qUYwn61GyQ3qHwAjt56nqYvV/43kazuemHrOZ0Zwxin9qpqbi9ecOAZXxObz7+69fl/2PP52bdszmTcwc4lFc/gGHgMz6/ia7Iu1v+1gzpPVeXJ9ruWlV6TRniGxc+xCvnzh3CMjM7/32S2IvZp218KXcfP6vr803WW6YXb7I+b74+Xtf699+fa2KNUazELU+/ZhP2rz1TTea+ckQnO/x7jO8J/rqd9+ufZzclB9vXkuhfbB6Tbst5uep6iNSmZR+bvxDYAT3/tQzFO1/2X01fHx5YubGemUzATXrDvtDkrk++ZAb9xAYgfvhUJAbKMgNFOQGCnIDBbmBgtxAQW6gIDdQUM8ARex6Bu5ORhW6nuHkhnj8e6HrGchNWGHrGaode9W990d767w6TbcOAiPMVM9gDFE9to/eFtfgpwLXM9jXv9gzmFLx2NtAyhvecHHrGYxRqt3Fy1aGxduv/vCTCVHcegZrlP3yP2NzzDJHbD7WQWCEuPUM5ijvfOy7hbfl/bjYy8x882WB6xnMCDwnmCMmzyCtS5aKD3UQGCF0PYO1unqth4uhUkrtFwVeHQRGiF7P0Oa3/obJ/pTt10FgBO6HQ0FuoCA3UJAbKMgNFOQGCnIDBbmBgtxAMVc9AyUTUcxVz0BuopirnoHcRDFXPQO5iWKieobjEPnN7qqgIa2buWfD3xViP4W+meoZ9jCV23rKDqKd5pGdfqRs0blopnoGYzZsjtlvOXqcROcpnDBVPUP7k91G2Pb25H0fu/MUzpirnsHOTV7I4G4pLJdKnadwxlz1DEJuOnMls4turnqGa7khON8zVz3DxdxYlQ3lxz/7KXw0Vz3D5dw8ytWUlSqWNgruh0NBbqAgN1CQGyjIDRTkBgpyAwW5gYLcQEFuoCA3UJAbKMgNFEVu/gDnFLn5C5zD+xQU5AYKcgMFuYGC3EBBbqAgN1CQGyjIDRTkBgpyAwW5gWKu/sWIInb/YkQVun8xwgrdvxhhhe1fbL3M7OCVvaAOrXOi+LmZ+hf32xXXifcOgREC9y823h6b9lrNKFdbJEMTt3+xuarKLv+YFsnQxO1fbM4Q2bj2IV4/cbpFMjRx+xdr802WG2aXLwrcv9hb33SjmZ8Mwfme0P2L2xbD3t9zaU/APQRGiN6/uPxDCt0/9tI7AZY2g3E/HApyAwW5gYLcQEFuoCA3UJAbKMgNFOQGCuoZoIhdz8DdyahC1zOc3BCPfy90PQO5CStsPUO1Y6+69/5ob51Xp+nWQWCEmeoZjCGqx/bR2+Ia/FTgegb7+hd7BlMqHnsbSHnDGy5uPYMxSrW7eNnKsHj71R9+MiGKW89gjbJf/mdsjlnmiM3HOgiMELeewRzlnY99t/C2vB8Xe5mZb74scD2DGYHnBHPE5BmkdclS8aEOAiOErmewVlev9XAxVEqp/aLAq4PACNHrGdr81t8w2Z+y/ToIjMD9cCjIDRTkBgpyAwW5gYLcQEFuoCA3UJAbKOaqZ6BkIoq56hnITRRz1TOQmyjmqmcgN1FMVM9wHCK/2V0VNKR1M/ds+LtC7KfQN1M9wx6mcltP2UG00zyy04+ULToXzVTPYMyGzTH7LUePk+g8hROmqmdof7LbCNvenrzvY3eewhlz1TPYuckLGdwtheVSqfMUzpirnkHITWeuZHbRzVXPcC03BOd75qpnuJgbq7Kh/PhnP4WP5qpnuJybR7maslLF0kbB/XAoyA0U5AYKcgMFuYGC3EBBbqAgN1CQGyjIDRTkBgpyAwW5gaLIzR/gnCI3f4FzeJ+CgtxAQW6gIDdQkBsoyA0U5AYKcgMFuYGC3EBBbqAgN1DM1b8YUcTuX4yoQvcvRlih+xcjrLD9i62XmR28shfUoXVOFD83U//ifrviOvHeITBC4P7Fxttj016rGeVqi2Ro4vYvNldV2eUf0yIZmrj9i80ZIhvXPsTrJ063SIYmbv9ibb7JcsPs8kWB+xd765tuNPOTITjfE7p/cdti2Pt7Lu0JuIfACNH7F5d/SKH7x156J8DSZjDuh0NBbqAgN1CQGyjIDRTkBgpyAwW5gYLcQEE9AxSx6xm4OxlV6HqGkxvi8e+FrmcgN2GFrWeoduxV994f7a3z6jTdOgiMMFM9gzFE9dg+eltcg58KXM9gX/9iz2BKxWNvAylveMPFrWcwRql2Fy9bGRZvv/rDTyZEcesZrFH2y/+MzTHLHLH5WAeBEeLWM5ijvPOx7xbelvfjYi8z882XBa5nMCPwnGCOmDyDtC5ZKj7UQWCE0PUM1urqtR4uhkoptV8UeHUQGCF6PUOb3/obJvtTtl8HgRG4Hw4FuYGC3EBBbqAgN1CQGyjIDRTkBgpyAwX1DFBQzwAF9QxQUM8ABfUMUFDPAAX1DFBQzwAF9QxQUM8ABfUMUFDPAAX1DFBwPxwKcgMFuYGC3EBBbqAgN1CQGyjIDRTkBgpyAwW5gYLcQEFuoCA3UJAbKP4DkSVtyujjw7YAAAAASUVORK5CYII=" alt="" />

3.原因:

第一次带&的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. Cocos2d-x设置吞没单击属性来避免精灵重叠被点击后的事件续传

    代码如下: Size visibleSize = Director::getInstance()->getVisibleSize(); /* create two sprites which h ...

  2. WebService 之 协议篇

    Web Service 使用的是 SOAP (Simple Object Access Protocol)简单对象访问协议,是交换数据的一种协议规范,是一种轻量的.简单的.基于XML(标准通用标记语言 ...

  3. 算法笔记_114:等额本金(Java)

    1 等额本金 标题:等额本金 小明从银行贷款3万元.约定分24个月,以等额本金方式还款. 这种还款方式就是把贷款额度等分到24个月.每个月除了要还固定的本金外,还要还贷款余额在一个月 中产生的利息. ...

  4. Hadoop-2.4.1学习之怎样确定Mapper数量

    MapReduce框架的优势是能够在集群中并行运行mapper和reducer任务,那怎样确定mapper和reducer的数量呢,或者说怎样以编程的方式控制作业启动的mapper和reducer数量 ...

  5. CI框架下nginx重写规则

    因为: server { listen ; server_name 222.73.130.124; location / { index index.html index.htm index.php; ...

  6. win10改win7如何设置bios教程

    情况一: 我们按del键(百度自己电脑.主板如何进入bios)进入主板bios后,我们通过键盘将选项移动到 Authentication 菜单(bios界面各不相同,可能不在此项,找到对应 secur ...

  7. sql关于group by之后把每一条记录的详情的某个字段值合并提取的方法

    在利用group by写了统计语句之后,还有一个查看每一个记录详情的需求, 首先想到的是根据group by的条件去拼接查询条件, 但是条件有点多,拼接起来不仅麻烦,还容易出错, 所以想到要在grou ...

  8. jmeter测试http请求使用csv参数

    创建参数化文件 线程组添加CSV Data Set Config配置元件 为请求添加参数 重新运行查看结果 使用随机参数(JMeter有好多函数可以使用) 查看结果发现使用随机生成的数字 3

  9. [华为机试练习题]5.IP地址推断有效性

    题目 推断输入的字符串是不是一个有效的IP地址 具体描写叙述: 请实现例如以下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符 ...

  10. 156. Merge Intervals【easy】

    Given a collection of intervals, merge all overlapping intervals.   Example Given intervals => me ...