今天在使用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()掉。

最新文章

  1. iOS 七牛云上传并获取图片----【客户端】
  2. css3 flex流动自适应响应式布局样式类
  3. 创建XML
  4. ENVI 5.0 Beta 体验——影像数据的显示
  5. js的for in具有不适应性(转)
  6. Material Design 设计--阴影的重要性
  7. jQuery.ajax() datatype:“json" 转换失败
  8. SQLLoader3(数据文件没有分隔符时的导入)
  9. C# 通讯网关开发
  10. robot framework 牛刀一试
  11. hibernate 查询方式汇总
  12. mysql打不开表问题解决方案
  13. Java对象序列化和反序列化的工具方法
  14. SQL SERVER 用sql语句将一列数据拼接成一个字符串
  15. 【转】避免全表扫描的sql优化
  16. 页面练习my blog day51
  17. c++获取随机数
  18. Linux块设备驱动_WDS
  19. Installing Percona XtraDB Cluster on CentOS
  20. HTTP API 设计指南(响应部分)

热门文章

  1. 【转】Java关键字final、static使用总结
  2. webstorm安装后的一些设置技巧:
  3. FileInputStream、FileReader、FileInputStream、FileWriter使用小结
  4. springMVC:通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
  5. EUI ViewStack实现选项卡组件
  6. PHP大文件存储示例,各种文件分割和合并(二进制分割与合并)
  7. CSS背景 顶上 顶下之类详解
  8. MySQL事件 Events
  9. 在html中关于如果function的函数名和input的name一样会发生怎样的现象
  10. [ASP.NET]