array_splice函数结果赋值

WBOY
풀어 주다: 2016-06-23 13:33:20
원래의
983명이 탐색했습니다.

$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楼,资料书上没写明白这个函数的返回值,之前一直以为这个函数返回原数组剩下的数据,谢谢。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿