Как я могу изменить следующий элемент в цикле foreach () во время цикла? Я думаю, что это как-то связано с разговором с переменной по ссылке, но я не уверен, как. i.e.:
$arr = array( array('color' => 'red', 'type' => 'apple'),
array('color' => 'yellow', 'type' => 'banana'),
array('color' => 'purple', 'type' => 'grape')
);
foreach($arr as $k => $v) {
echo "<br> The ".$v['type'].' fruit is '.$v['color'];
// change the color of the next fruit?
if($v['type'] == 'apple') { $arr[$k+1]['color'] = 'green'; }
}
Я хотел бы, чтобы это сказать мне банан зеленый, но он упорно придерживается банана будет желтым ...
(ОБНОВЛЕНИЕ: исправлена глупая логическая ошибка в моем исходном вопросе. Ответ, отмеченный ниже, является правильным.)