楽しいだけで十分です

好きなことを書きます

PHPのforeachは、イテレーション対象の配列をコピーして動作している

PHPのforeachでイテレーションを回してる時に、イテレーション対象の配列の値を更新したかった時に調べてみました。
まだ、ちゃんとは理解できていないですが、PHPのforeachは、イテレーション対象の配列をコピーして動作しているようです。
そのため、foreach内で値を更新してもコピーされた配列を更新するだけであり、元の配列には影響がない(更新ができない)ようです。

解決策として、今回は別の方法でイテレーションを回すことで、値を更新できるようにしてみました。
今度から気をつけます。

参考

ja.stackoverflow.com