Home > Article > Backend Development > How to remove an element with a specified subscript from a php array
Two removal methods: 1. Using the array_splice() function, you only need to set the second parameter of the function to the specified subscript and the third parameter to 1. The syntax "array_splice($arr , specify subscript ,1)”. 2. Use the "$array name[subscript]" statement and the unset() function, with the syntax "unset($arr[specified subscript])".
The operating environment of this tutorial: Windows 7 system, PHP version 8.1, DELL G3 computer
In PHP, you can use the array_splice() function Or use the unset() function to remove an element with a specified index.
Method 1: Use array_splice() function
array_splice() is a powerful function with multiple functions: it can insert array elements, Array elements can be replaced, and of course array elements can be deleted (after all, the job of the array_splice() function is to delete the specified element and replace it with another value).
The array_splice() function can delete the specified number of elements starting from the specified position.
array_splice($array,$start,$length)
Parameters | Description |
---|---|
array | Required . Specifies an array. |
start | Required. numerical value. Specifies the starting position of deleted elements.
0 = first element.
If the value is set to a positive number, removal begins at the offset specified by the value in the array. If the value is set to a negative number, removal begins at the offset specified by the value from the end of the array.
-2 means start from the second to last element of the array. |
length | Optional. numerical value. Specifies the number of elements to be removed, which is also the length of the returned array.
If this value is set to a positive number, remove this number of elements. If this value is set to a negative number, all elements from start to length inverse of the end of the array are removed. If this value is not set, all elements from the position set by the start parameter to the end of the array are removed. |
只需要将该函数的第二个参数$start设置为指定下标,第三参数$length设置为1(删除一个元素)即可。
<?php header("Content-type:text/html;charset=utf-8"); $arr = array('one','two','three','php'); var_dump($arr); //删除下标为2的元素 array_splice($arr,2,1); echo "删除指定下标的一个元素后:"; var_dump($arr); ?>
可以看到,array_splice()函数会重置下标。
array_splice()函数的参数说明:
array_splice($arr,$start)
会删除从$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); var_dump($arr); ?>
$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); ?>
$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相配合,进行插入操作(这里就不做具体介绍了)。
方法2:利用“$数组名[下标]”语句和unset()函数
$数组名[下标]
语句可以访问指定下标的一个元素
而unset()函数可以删除指定下标(键名)的一个数组元素,即删除访问到的一个元素
<?php header('content-type:text/html;charset=utf-8'); $arr = array(0 => "a", 1 => "b", 2 => "c"); echo "原数组:"; var_dump($arr); echo "删除指定下标的一个元素后:" ; unset($arr[1]); //↑ 你想删除的key(下标) var_dump($arr); ?>
说明:
unset()函数允许取消一个数组中的元素,但数组并不会重建索引,即保持原有索引,因为php中的索引具有特殊的含义。
The above is the detailed content of How to remove an element with a specified subscript from a php array. For more information, please follow other related articles on the PHP Chinese website!