关于php中foreach语句的&用法问题

$arr=array('a'=>1,'b'=>2,'c'=>3);foreach($arras$key=>&$val){echo$key.'-'.$val.'<br>';... $arr = array('a' => 1, 'b' => 2, 'c' => 3);
foreach ($arr as $key => &$val) {
echo $key.'-'.$val.'<br>';
}//输出为:a-1 b-2 c-3.
//print_r($arr);
echo '<hr>';
foreach($arr as $key => $val) {
echo $key.'-'.$val.'<br>';
}//输出为:a-1 b-2 c-2(此处为什么c成了2了??)
代码如上,为什么两次foreach打印出来的结果不一样 加一个&在数组这里实在没弄明白,请教一下大神。
展开
 我来答
百度网友9308069
2018-03-16 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1841万
展开全部

参考一下这个页面,是和你一摸一样的问题,

wo六年前已经解答..

网页链接

追问
请问一下大神,我的问题就出现在第二次遍历上,第二次遍历为什么会从最后一个开始?
您的回答是:第二次遍历foreach ($a as $val)将每个元素依次赋值到最后一个地址上。
数组$a的变化循环第一次[1,2,1],第二次[1,2,2],第三次次[1,2,2]
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式