因为某些需求会导致需要移除数组中的某些数据,那么会有哪些方式可以满足这个需求呢?
Come baby,说个简单的。
- 特批2个常用函数登场(
array_pop(),array_shift())
array_pop: 移除数组的最后一个元素。
array_shift: 移除数组的第一个元素。
举个荔枝:
$arr = [[1,2], [2,3], [3,4], [2,5]];
array_pop($arr); //输出$arr = [[1,2], [2,3], [3,4]];
array_shift($arr); //输出$arr = [[2,3], [3,4]];
备注:一维数组同样适用
unset : 哼!居然不把我排在第一位,桑心 。。。
作者 :不把你放在第一位,是因为你是压轴的哈!
- 下一位
array_splice()用它要小心的一点就是 改变数组索引
举个荔枝(为了看清索引,同时看出一个秘密,咱们把结果json_encode()下):
$arr = [[1,2], [2,3], [3,4], [2,5]];
var_dump(json_encode($arr)) //输出 "[[1,3],[2,3],[3,4],[2,5]]"
//现在移除数组中的第三个数组
array_splice($arr,2,1); // 输出 "[[1,3],[2,3],[2,5]]"
结论:效果看是不是只是把第三个数组移除了,没有产生其他的副作用呢,ok在看下unset做下比较
- 压轴
unset出来吧 ,这个家伙是不改变的数组索引的哦
出来吧,荔枝:
$arr = [[1,2], [2,3], [3,4], [2,5]];
var_dump(json_encode($arr)) //输出 "[[1,3],[2,3],[3,4],[2,5]]"
//现在移除数组中的第三个数组
unset($arr[2]); // 输出 "{"0":[1,3],"1":[2,3],"3":[2,5]}"
ok!不知道你发现没有,unset()之后,会带有索引值的,这就是2者之间的区别了,所以希望读者根据实际需要决定那个函数才是最适合你的。come baby,舞台交给你了,自己去玩吧,骚年!