📅  最后修改于: 2023-12-03 14:45:24.019000             🧑  作者: Mango
在PHP中,我们可以使用unset()
函数按键删除数组项。但是,如果我们想按值删除数组项该怎么办呢?这就需要使用array_search()
和array_splice()
函数。
我们可以使用array_search()
函数来查找数组中指定值的键值。该函数的语法如下:
array_search($value, $array)
其中,$value
是要查找的值,$array
是所要查找的数组。
该函数的返回值是数组中指定值的键值。如果该值不存在,则返回false
。
我们可以使用array_splice()
函数来删除数组中指定索引的项。该函数的语法如下:
array_splice($array, $start, $length)
其中,$array
是要删除项的数组,$start
是所要删除项的起始索引,$length
是所要删除的项数。
需要注意的是,使用该函数后,原来的数组会被改变。
我们将array_search()
和array_splice()
两个函数结合起来使用,就可以按值删除数组项了。具体实现如下:
$value = "delete_me";
$key = array_search($value, $array);
if ($key !== false) {
array_splice($array, $key, 1);
}
该代码首先使用array_search()
函数查找值"delete_me"
在数组中的键值,并将其保存在变量$key
中。然后,如果该值存在,则使用array_splice()
函数删除它,即删除起始索引为$key
的项,且删除1项。
<?php
$array = array("apple", "banana", "cherry", "delete_me", "eggfruit");
$value = "delete_me";
$key = array_search($value, $array);
if ($key !== false) {
array_splice($array, $key, 1);
}
print_r($array);
?>
输出结果为:
Array
(
[0] => apple
[1] => banana
[2] => cherry
[3] => eggfruit
)
我们可以看到,数组中的"delete_me"
项已被成功删除。