php

foreach遍历中加&什么意思

2023-09-15

foreach遍历中加&是什么意思?

如果我要改变数组某一个值,直接遍历的话原数组是不会变的,要想遍历时改变里的值,下面提供两种方法


1、我们可以遍历的时候组合数据然后 array_push()把数据赋给另一个新的数组这样才可以 如:

$data=array(1,2,3,4);

$newdata=array();

foreach($data as $k=>$v){

    if($v==2)  $v=666;

    array_push($newdata,$v);  //这样可以得到我们想要的数组

}

//我们想把值等于2的改为666 这样的话在内部改变了$v,但是$data还是没改变

 

2、我们可以在遍历的值前面加个&符号这样就可以改变原数组了 不需要用array_push()了

$data=array(1,2,3,4);

foreach($data as &$v){

   if($v==2)  $v=666;  //因为$v前面加了'&'所以原数组就直接改变了

}

所以,foreach 加&遍历的同时改变原数组即修改数据或者增加数据