如果你有一个类似下面的foreach循环,我知道你可以通过$array[$key]
更改数组的当前元素,但还有一种方法可以通过$value
更改它吗?
foreach($array as $key => $value){
}
这可能非常简单,但我对PHP很陌生,所以请不要被我的问题烦恼:)
答案 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);
答案 1 :(得分:0)
有一个功能,并且自PHP的早期版本开始构建,称为array_map