从php中的数组中删除一个元素而不array_search
我想从数组中删除一个数组元素,但我不知道该key
元素的数组只有值是已知的
可以通过array_search
带值,首先找到密钥然后使用unset
是否有任何内置的数组函数来删除具有数组值的数组元素?
从php中的数组中删除一个元素而不array_search
我想从数组中删除一个数组元素,但我不知道该key
元素的数组只有值是已知的
可以通过array_search
带值,首先找到密钥然后使用unset
是否有任何内置的数组函数来删除具有数组值的数组元素?
您只能通过引用此 KEY 从数组中删除元素。所以你必须以某种方式得到这个 KEY。从数组中获取搜索值的键的array_search()
函数正是返回给定值的键的函数。
示例显示了一种无需使用 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;
}
);
任何必须“删除具有数组值的数组元素”的函数都必须对每个*元素执行循环以查找要删除的值。因此,您不妨添加自己的for
循环来执行此操作,或者array_search()
为您执行此操作。
数组具有键的原因是您可以使用该键有效地获取值。
*实际上,一旦找到它,您就会停止循环,而不是继续寻找,除非可能有重复项要删除
唯一不使用的有效情况array_search
是如果您想取消设置多个值。不过,您仍然需要使用密钥。我建议您遍历数组并删除符合您的条件的字段。
foreach($array as $key => $value) {
if($value === $deleteValue)
unset($array[$key]);
}