如何在foreach循环内部设置成员值


How to set the member values inside of a foreach loop

有没有办法用foreach设置数组成员的值?

<?
  $arr = array(0=>'a',1=>'b',2=>'c',3=>'d');
  foreach($arr as $key => $value){
    $value = 'a';
  }
  var_dump($arr);
?>

退货:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
}

我想让它返回的地方是:

   array(4) {
      [0]=>
      string(1) "a"
      [1]=>
      string(1) "a"
      [2]=>
      string(1) "a"
      [3]=>
      string(1) "a"
    }

这是我使用的代码板的链接。

http://codepad.org/FQpPYFtz

$arr = array(0=>'a',1=>'b',2=>'c',3=>'d');
foreach($arr as $key => &$value) {  // <-- use reference to $value
  $value = 'a';
}
var_dump($arr);

很简单:

foreach ($data as $key => $value) {
    $data[$key] = 'new value';
}