php 中遍历数组时使用引用出现的问题
程序员文章站
2022-06-09 09:51:10
...
今天在 使用 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);
后来查看手册才发现,原来是因为在遍历时使用引用,当第二次遍历数组时,数组的指针$value 还是指向数组的末尾的元素,当重新赋值时 $value 指向的数组的末尾的元素就被修改了
解决办法是在第一次遍历完成之后就将$value unset()掉。
推荐阅读
-
Winform中在使用VS+svn进行协同开发时添加引用时的相对路径和绝对路径的问题
-
解析使用substr截取UTF-8中文字符串出现乱码的问题_PHP
-
使用php时出现了no database selected的问题 求大神帮助
-
php中的array_walk无法unset引用数组,大家看看代码有没有什么问题?
-
解决vuejs 使用value in list 循环遍历数组出现警告的问题
-
php使用wampserver中的mysql时出现的问题
-
php 中遍历数组时使用引用出现的问题
-
微信消息接口使用,在提供的demo中引用自己写的类出现问题
-
微信消息接口使用,在提供的demo中引用自己写的类出现问题
-
php中foreach引用出现的问题分析