查看: 646|回复: 0

php中foreach循环使用&引用来修改数组元素

[复制链接]

748

主题

39

回帖

3907

积分

管理员

总舵主

积分
3907
QQ
发表于 2024-5-25 17:50:35 | 显示全部楼层 |阅读模式
具体看代码演示:
  1. <?php
  2. $arr = array(1, 2, 3, 4);
  3. foreach ($arr as &$value) {
  4. $value = $value*2;
  5. }
  6. print_r($arr);
  7. echo "<br>";
  8. // $arr is now array(2, 4, 6, 8)
  9. //unset($value); // 最后取消掉引用
  10. foreach ($arr as $key => $value) {
  11. echo $key ."=>". $value."<br>";
  12. print_r($arr);
  13. echo "<br>";
  14. }
  15. //当没有使用unset($value)方法销毁变量,那么$arr[3]是一直在保留引用;
  16. //第一次循环,将2赋值给了$value,浏览器输出2,然后再打印数组$arr实际成了array(2,4,6,2);
  17. //第二次结束,将4赋值给了$value,浏览器输出4,然后再打印数组$arr实际成了array(2,4,6,4);
  18. //第三次结束,将6赋值给了$value,浏览器输出6,然后再打印数组$arr实际成了array(2,4,6,6);
  19. //第四次结束,将6赋值给了$value,浏览器输出6,然后再打印数组$arr实际成了array(2,4,6,6);
  20. ?>
复制代码

运行结果如下:
  1. Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
  2. 0=>2
  3. Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 2 )
  4. 1=>4
  5. Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 4 )
  6. 2=>6
  7. Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 6 )
  8. 3=>6
  9. Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 6 )
复制代码
引用的作用是修改数组的元素,上面的代码第二个foreach实际上是在间接的给$arr[3]赋值。

道不同,不相为谋!理想要有,万一实现了呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2513533699@qq.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鲁ICP备19000917号|鲁公网安备37078302000320号

在本版发帖
关注公众号
QQ客服返回顶部