<?php $test[]=array('1'=>'a'); $test[]=array('2'=>'b'); foreach ($test as $m => $n) { /*array_slice($test, intval($m), 1);*/ /*array_splice($test, intval($m), 1);*/ unset($test[$m]); echo $m; } var_dump($test); ?>
array_slice提取數組中的一部分數據,返回提取數據,對原數組無影響。php
array array_splice ( array input, int offset [, int length [, array replacement]]);若是未填寫replacement參數,截取一段數據,返回截取數據,對原數組有影響,原數組減小截取部分,後面的移到前面,填補前面刪除的位置,內存存儲地址應該是變化了。數組
可是:如上代碼,使用unset和array_splice獲得的結果不一樣,unset結果$test爲empty;array_splice結果爲array('2'=>'b');code
unset刪除,內存存儲地址未變。內存
歡迎你們來指正input