知らなかったよ
マニュアルに書いてるじゃん。
http://www.php.net/manual/ja/control-structures.foreach.php
配列の内容自体を変更したいときにforeachで&指定ってできるのね。
<?php $aa = array( 'k1' => 'v1', 'k2' => 'v2', 'k3' => 'v3', 'k4' => 'v4', ); var_dump($aa); foreach ($aa as &$a) { $a .= '!'; } unset($a); // <= 最後の値に参照が残るのでこれ重要かも。。。 var_dump($aa); ?> 出力結果: array(4) { ["k1"]=> string(2) "v1" ["k2"]=> string(2) "v2" ["k3"]=> string(2) "v3" ["k4"]=> string(2) "v4" } array(4) { ["k1"]=> string(3) "v1!" ["k2"]=> string(3) "v2!" ["k3"]=> string(3) "v3!" ["k4"]=> &string(3) "v4!" }
今まで無駄をやってた感があるにゃ。