array_splice函数结果赋值
程序员文章站
2024-01-30 17:34:52
...
$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),求解。
$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楼,资料书上没写明白这个函数的返回值,之前一直以为这个函数返回原数组剩下的数据,谢谢。
推荐阅读
-
Yii 2 中可以配置 component.user.loginUrl 匿名函数以实现动态赋值吗?
-
新手请问:调用函数时无任何输出结果
-
vue将一个data/DataSource对象变量赋值给另一个,结果两个对象变量同时变化的解决办法【伸手党福利】
-
Jenkins pipeline之将命令的运行结果赋值给变量
-
关于C语言中不允许在函数外部给全局变量赋值
-
array_slice()与array_splice()这两个函数的区别是什么,突然糊涂了
-
C语言不允许对全局变量在函数外进行赋值
-
C语言无法在函数外部对全局变量进行赋值操作
-
JQuery Ajax 回调函数为全局变量赋值
-
tp框架写了个步骤获取*分类return结果就是null,在辅助函数都能打印出结果