php 中遍历数组时使用引用出现的问题
程序员文章站
2024-02-15 16:32:16
...
今天在 使用 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()掉。
上一篇: 想成为PHP软件工程师正确的步骤
推荐阅读
-
php 中遍历数组时使用引用出现的问题
-
php中输出中文数组出现奇怪的问题怎么破?
-
Mybatis中foreach标签中使用pgsql的in语句时,出现空格导致的语法错误的问题。
-
使用php时出现了no database selected的有关问题 求大神帮助
-
php使用命名空间,然后初始化扩展中的类出现的问题
-
ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题
-
php使用命名空间,然后初始化扩展中的类出现的问题
-
解析使用substr截取UTF-8中文字符串出现乱码的问题_PHP
-
JavaScript中关于for循环删除数组元素内容时出现的问题
-
使用php时出现了no database selected的问题 求大神帮助