📅  最后修改于: 2023-12-03 15:03:42.497000             🧑  作者: Mango
在PHP中,你可能需要从数组中删除某个值,即使它并不存在也不会出错。以下是几种实现方式:
使用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 = array('apple', 'orange', 'banana');
$array = array_diff($array, array('orange'));
// 结果:$array = array('apple', 'banana');
在上述代码中,array_diff
方法使用指定项array('orange')
查找并返回新数组,也就是不含'orange'值的数组。
使用array_filter
方法是一个更通用的方法,它可以用于从数组中删除指定的值或使用自定义函数过滤值:
$array = array('apple', 'orange', 'banana');
$array = array_filter($array, function($value) {
return $value !== 'orange';
});
// 结果:$array = array('apple', 'banana');
在上述代码中,array_filter
方法使用指定函数将数组过滤为新的数组。在这个例子中,函数返回true
来删除'orange'值。你可以使用任何自定义函数来执行过滤。