<?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删除,内存存储地址未变。
欢迎大家来指正