PHP foreach更改数组值

时间:2014-09-14 17:12:53

标签: php foreach

如果你有一个类似下面的foreach循环,我知道你可以通过$array[$key]更改数组的当前元素,但还有一种方法可以通过$value更改它吗?

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

}

这可能非常简单,但我对PHP很陌生,所以请不要被我的问题烦恼:)

2 个答案:

答案 0 :(得分:6)

为了能够直接为$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);


The php manual on foreach loops

答案 1 :(得分:0)

有一个功能,并且自PHP的早期版本开始构建,称为array_map