在没有array_search
我想从数组中删除一个数组元素,但我不知道该元素的数组key
只知道值
array_search
可以使用值,首先找到密钥,然后使用unset
是否有内置数组函数来删除数组值的数组元素?
答案 0 :(得分:4)
您只能通过引用此KEY来从数组中删除元素。所以你必须以某种方式得到这个KEY。从数组中获取搜索值的键的函数正是array_search()
函数,该函数返回给定VALUE的KEY。
答案 1 :(得分:2)
示例显示了一种不使用array_search()
的方法$myArray = array(5, 4, 3, 2, 1, 0, -1, -2);
$knownValue = 3;
$myArray = array_filter(
$myArray,
function($value) use ($knownValue) {
return $value !== $knownValue;
}
);
答案 2 :(得分:1)
任何必须“删除数组值为”的数组元素的函数都必须在每个*元素上执行一个循环,查找要删除的值。因此,您也可以添加自己的for
循环来执行此操作,或array_search()
将为您执行此操作。
数组具有键的原因是您可以使用该键有效地获取值。
* 实际上,一旦找到它就会停止循环,而不是继续寻找,除非可能有重复删除
答案 3 :(得分:0)
不使用array_search
的唯一有效案例是,如果您要取消设置多个值。你仍然需要使用密钥。我建议您遍历数组并删除符合条件的字段。
foreach($array as $key => $value) {
if($value === $deleteValue)
unset($array[$key]);
}