如何在foreach循环中设置成员值

时间:2012-02-19 10:29:22

标签: php arrays foreach

有没有办法用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

2 个答案:

答案 0 :(得分:3)

这很简单:

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

答案 1 :(得分:3)

$arr = array(0=>'a',1=>'b',2=>'c',3=>'d');

foreach($arr as $key => &$value) {  // <-- use reference to $value
  $value = 'a';
}

var_dump($arr);