php 便利引用数组,php 中遍历数组时使用引用出现的问题

本文介绍了在使用PHP的foreach遍历数组时遇到的问题,当使用引用符号`&`时,第二次遍历数组会发现指针仍然在上次遍历结束的位置。解决方法是在第一次遍历后通过`unset()`释放引用。文章强调了在遍历过程中正确管理和修改数组元素的重要性。
摘要由CSDN通过智能技术生成

今天在 使用 foreach遍历数组时发现,当 使用 时会 出现 问题 : $arr = array( array('id' = 100, 'error'= 'aa'), array('id' = 101, 'error'= 'bb'),);foreach($arr as $value) { if($value['id'] == 101) $value['error'] = 'test';}var_dump($arr);forea

今天在使用foreach遍历数组时发现,当使用&时会出现问题:

$arr = array(

array('id' => 100, 'error'=> 'aa'),

array('id' => 101, 'error'=> 'bb'),

);

foreach($arr as &$value) {

if($value['id'] == 101) $value['error'] = 'test';

}

var_dump($arr);

foreach($arr as $value) {}

var_dump($arr);

test.jsp?url=http%3A%2F%2Fimages.cnitblog.com%2Fblog%2F656786%2F201411%2F132017435859555.jpg&refer=http%3A%2F%2Fwww.cnblogs.com%2Faxwing%2Fp%2F4095786.html

后来查看手册才发现,原来是因为在遍历时使用引用,当第二次遍历数组时,数组的指针$value 还是指向数组的末尾的元素,当重新赋值时 $value 指向的数组的末尾的元素就被修改了

解决办法是在第一次遍历完成之后就将$value unset()掉。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值