PHP foreach 循环改变数组值

7

当您使用类似下面的foreach循环时,我知道您可以通过$array[$key]更改数组的当前元素,但是否也有一种通过$value来直接更改它的方法?

foreach($array as $key => $value){

}

可能很简单,但是我对PHP还很陌生,请不要因为我的问题而生气 :)

2个回答

13

如果您想直接为$value赋值,您需要在其前面加上&,像这样引用$value

foreach($array as $key => &$value){
    $value = 12321; //the same as $array[$key] = 12321;
}

unset($value);
foreach 循环结束后,应该执行 unset($value),因为在循环后仍然可以访问它。
注意:当数组是一个常量时,你只能通过变量引用传递 $value。 下面的例子是不起作用的:
foreach(array(1, 2, 3) as $key => &$value){
    $value = 12321; //the same as $array[$key] = 12321
}

unset($value);


foreach 循环在 PHP 手册中的说明


此外,我们可以简单地使用“foreach($array as &$value)”,而不需要$key。希望这也对你有所帮助。和平。 - masarapmabuhay

0

有一个函数可以做到这一点,而且自早期版本的PHP就内置了它,它被称为array_map


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接