array_splice() array_slice() unset()區別

<?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

相關文章
相關標籤/搜索