$arr1 = array(1,2,3);
$arr2 = array(3,4,5);
$arr1 = array_splice($arr2,1,1);
print_r($arr1);
结果是Array ( [0] => 4 )
按理说,赋值运算符在最后完成array_splice函数后才进行,
那么 array_splice($arr2,1,1)得到的数组$arr2内的值应该是(3,4),
然后运算“=”,则得到$arr1数组的内容应该是(3,4),但是实际上运行整个
$arr1 = array_splice($arr2,1,1),却得到$arr1数组的内容为(4),求解。
为什么呢?你这算的什么帐
array_splice($arr2,1,1) 是从 $arr2 的第 1 元素(计数从0开始)删除 1 个元素,并返回删除的元素
你只让他删除 1 个,他绝不会自作主张的去删 2 个
array_slice() 函数在数组中根据条件取出一段值,并返回。
你还没理解这函数的意思吧。。。。。。你写得代码的意思是,从数组的第二个位置开始取,取一个值
楼上的各位,我的本意是想使用array_splice将$arr2的 第二位删除并将其赋给$arr1,然后显示剩下的数组内的值,然后顺手将代码写成了:$arr1 = array_splice($arr2,1,1)。
得出的结果让我很不理解,我看网上对array_splice的定义是删除或替换数组内指定部分的值,但是$arr1 = array_splice($arr2,1,1)代码的结果取到的反而是我想删除的值,是否$arr1 = array_splice($arr2,1,1)等同于array_slice($arr2,1,1)?
手册中数的很明白了:返回一个包含被移除单元的数组
仅从返回结果上看, array_splice($arr2,1,1) 等同于 array_slice($arr2,1,1)
但前者已经改变了 $arr2 的原始状态
谢谢5楼,资料书上没写明白这个函数的返回值,之前一直以为这个函数返回原数组剩下的数据,谢谢。