Как установить значения элементов внутри цикла foreach - PullRequest
2 голосов
/ 19 февраля 2012

Есть ли способ установить значение членов массива с помощью 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 ]

3 голосов
/ 19 февраля 2012
$arr = array(0=>'a',1=>'b',2=>'c',3=>'d');

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

var_dump($arr);
3 голосов
/ 19 февраля 2012

Это довольно просто:

foreach ($data as $key => $value) {
    $data[$key] = 'new value';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...