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提取数组中的一部分数据,返回提取数据,对原数组影响。

array array_splice ( array input, int offset [, int length [, array replacement]]);如果未填写replacement参数,截取一段数据,返回截取数据,对原数组影响,原数组减少截取部分,后面的移到前面,填补前面删除的位置,内存存储地址应该是变化了。

但是:如上代码,使用unset和array_splice得到的结果不同,unset结果$test为empty;array_splice结果为array('2'=>'b');

unset删除,内存存储地址未变。

欢迎大家来指正

你可能感兴趣的:(array_slice,array_splice,unset())