📜  php 数组删除值(如果存在) - PHP (1)

📅  最后修改于: 2023-12-03 15:03:42.497000             🧑  作者: Mango

PHP 数组删除值(如果存在)

在PHP中,你可能需要从数组中删除某个值,即使它并不存在也不会出错。以下是几种实现方式:

使用unset方法

使用unset方法是删除任何变量的一种方式,包括数组值。如果该值不存在,操作会被忽略:

$array = array('apple', 'orange', 'banana');
if (($key = array_search('orange', $array)) !== false) {
    unset($array[$key]);
}
// 结果:$array = array('apple', 'banana');

在上述代码中,array_search函数查找‘orange’在数组中的位置并返回它的键名;如果找不到就返回false。如果键名存在,unset方法删除对应的值。

使用array_diff方法

使用array_diff方法是查找指定值并生成新数组的一种方式,如果该值不存在,不会进行任何操作:

$array = array('apple', 'orange', 'banana');
$array = array_diff($array, array('orange'));
// 结果:$array = array('apple', 'banana');

在上述代码中,array_diff方法使用指定项array('orange')查找并返回新数组,也就是不含'orange'值的数组。

使用array_filter方法

使用array_filter方法是一个更通用的方法,它可以用于从数组中删除指定的值或使用自定义函数过滤值:

$array = array('apple', 'orange', 'banana');
$array = array_filter($array, function($value) {
    return $value !== 'orange';
});
// 结果:$array = array('apple', 'banana');

在上述代码中,array_filter方法使用指定函数将数组过滤为新的数组。在这个例子中,函数返回true来删除'orange'值。你可以使用任何自定义函数来执行过滤。