PHPのforeach文で直接値を変更する方法

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);

コメント

タイトルとURLをコピーしました