PHP foreach更改数组值

fck*_*kye 3 php foreach

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*nan 8

为了能够直接赋值$value,你想$value通过&像前面这样引用它:

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

unset($value);
Run Code Online (Sandbox Code Playgroud)

在后foreach循环,你应该做的unset($value),因为你仍然能够在循环后才能访问它.
注意:$value当数组是变量时,您只能通过引用传递.以下示例不起作用:

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

unset($value);
Run Code Online (Sandbox Code Playgroud)


关于foreach循环的php手册