📜  php 按值删除数组项 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:24.019000             🧑  作者: Mango

PHP按值删除数组项

在PHP中,我们可以使用unset()函数按键删除数组项。但是,如果我们想按值删除数组项该怎么办呢?这就需要使用array_search()array_splice()函数。

1. 使用array_search()函数查找值

我们可以使用array_search()函数来查找数组中指定值的键值。该函数的语法如下:

array_search($value, $array)

其中,$value是要查找的值,$array是所要查找的数组。

该函数的返回值是数组中指定值的键值。如果该值不存在,则返回false

2. 使用array_splice()函数删除数组项

我们可以使用array_splice()函数来删除数组中指定索引的项。该函数的语法如下:

array_splice($array, $start, $length)

其中,$array是要删除项的数组,$start是所要删除项的起始索引,$length是所要删除的项数。

需要注意的是,使用该函数后,原来的数组会被改变。

3. 将两个函数结合起来

我们将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"项已被成功删除。