foreachで直接値を変更する方法がわからなかった。
でも、PHPのマニュアルにしっかり書いてあった。
ループの中で配列の要素を直接変更したい場合は、 $value の前に & をつけます。
PHP5.6.28で確認した。
$array = ['Java', 'Python', 'C', 'PHP', 'Ruby', 'Perl', 'JavaScript'];
// 普通のfor文
for($i = 0; $i < count($array); $i++) {
echo $array[$i] . PHP_EOL;
}
// foreachを使った同じループ
foreach($array as $value) {
echo $value . PHP_EOL;
}
// foreachで値を編集するループ
foreach($array as &$value2) {
$value2 = 'edit';
echo $value2 . PHP_EOL;
}
var_dump($array);

コメント