php数组学习之怎么去除任意元素
在上一篇文章中我们介绍了删除数组中第一个元素或最后一个元素的方法,感兴趣的可以点击链接查看→《php数组学习之如何去除首尾的值》。这次我们继续介绍删除数组元素,带大家了解删除数组任意元素的方法。
大部分时候,需要删除的元素是不固定的,不一定是数组开头或结尾,也不一定只删除一个,这也就无法使用array_shift()和array_pop()函数了。那么要如何才能去删除数组中的任意元素呢?今天我们来了解了解。
之前在《PHP数组学习之巧用函数插入元素(二)》中我们介绍了array_splice()函数,它是一个强大的函数,有多重功能:可以插入数组元素、可以替换数组元素,当然也可以删除数组元素(毕竟array_splice()函数的本职工作是删除指定元素并用其它值取代)。下面我们就来看看它的删除功能。
我们来看下面一个小例子。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,2); var_dump($arr); ?>
输出结果为:
可以看出,我们使用array_splice($arr,2)
从$arr数组的第3个元素开始删除元素,共删除了3个元素(将从第3个元素开始的所有元素删除了)。array_splice($arr,$start)
会删除从$start位置开始的所有元素删除。
$start参数有三种取值情况:
-
为正数,那么从$start位置开始,往后删除;
-
为0,那么从第一个元素开始,往后删除;
-
为负数,则从距离 $arr 末端 -start 的位置开始,从后往前删除。例如 -2 意味着从数组的倒数第二个元素开始。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,-2); var_dump($arr); ?>
输出结果为:
array_splice()函数是强大的,可以删除多个元素,也可只删除一个元素,那就需要给该函数指定一个$length
参数(第三个参数),该参数用来规定删除的元素个数。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,2,1); var_dump($arr); ?>
输出结果为:
可以看出只删除了第三个元素“20”。
在删除元素操作中,$length参数也有三种取值情况:
-
为正数,那么就表示删除 length 个元素;
-
为负数,那么将删除从 start 开始,到数组末尾倒数 length 为止的所有元素;
-
如果省略,那么将删除从 start 开始,一直到数组末尾的所有元素。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array(10,12,20,25,24); echo "原数组:"; var_dump($arr); echo "删除后的数组:" ; array_splice($arr,2,-1); var_dump($arr); ?>
输出结果为:
$length参数还可以为0,那么就表示不删除元素,可以和该函数的第四个参数$value相配合,进行插入操作(这里就不做具体介绍了)。
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!