今天假設,我們想對陣列中每個數字 * 2
1 2 3 4 5 6 7 |
<?php $arr = array(1, 2, 3, 4); foreach ($arr as $value) { $value = $value * 2; } print_r($arr); ?> |
原本以為會跑出 2 4 6 8
但卻會發現根本就沒動
其實只需要在foreach那邊做點修改
1 2 3 4 5 6 7 |
<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } unset($value); ?> |
我們針對 foreach後面的 key (or value)
前面加上 & ,指定為reference
這變數就可以編輯了~
還有記得做完之後要unset這個變數,避免該變數有奇怪的更動
參考資料: http://php.net/manual/en/control-structures.foreach.php