在PHP的Foreach中,加&的作用
  • 分类:经验分享
  • 发表:2022-05-18
  • 围观(967)
  • 评论(0)

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

foreach 加& 什么意思?

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

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

$data=array(1,2,3,4);
$newdata=array();
foreach($data as $k=>$v){
if($v==2) $v=666;//我们想把值等于2的改为666 这样的话在内部改变了$v但是$data还是没改变
array_push($newdata,$v);//这样可以得到我们想要的数组
}

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

$data=array(1,2,3,4);
foreach($data as &$v){
if($v==2) $v=666;//因为$v前面加了'&'所以原数组就直接改变了
}

具体的表现如下:
'abc',
'b'=>'def',
'd'=>'ghi'
];
$lists = $list;
foreach ($list as $k => &$v){
if ($k == 'a') $v='aaaa';
}
print_r($list);

foreach ($lists as $k => $v){
if ($k == 'a') $v='abbbbb';
}
print_r($lists);

运行结果为:

Array
(
    [a] => aaaa
    [b] => def
    [d] => ghi
)
Array
(
    [a] => abc
    [b] => def
    [d] => ghi
)
Top