php の foreach は基本値渡しで、受け取った値を変更しても当然元の配列データは変更されない。
でも実際は参照渡しもできることを知ったので一応メモ。
以下は普通の値渡しの例。
$enjoi = array("normal", "crazy");
foreach( $enjoi as $e )
{
if( $e == "crazy" )
{
$e = "normal";
}
}
var_dump($enjoi);
array(2) { [0]=> string(6) "normal" [1]=> string(6) "crazy" }
でも関数の参照渡しみたいに & をつけてやると、参照渡しを使って foreach で配列を処理できる。
$enjoi = array("normal", "crazy");
foreach( $enjoi as &$e )
{
if( $e == "crazy" )
{
$e = "normal";
}
}
var_dump($enjoi);
array(2) { [0]=> string(6) "normal" [1]=> &string(6) "normal" }