1

从php中的数组中删除一个元素而不array_search

我想从数组中删除一个数组元素,但我不知道该key元素的数组只有值是已知的

可以通过array_search带值,首先找到密钥然后使用unset

是否有任何内置的数组函数来删除具有数组值的数组元素?

4

4 回答 4

4

您只能通过引用此 KEY 从数组中删除元素。所以你必须以某种方式得到这个 KEY。从数组中获取搜索值的键的array_search()函数正是返回给定值的键的函数。

于 2012-05-25T08:10:04.940 回答
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; 
               }
           ); 
于 2012-05-25T08:12:59.050 回答
2

任何必须“删除具有数组值的数组元素”的函数都必须对每个*元素执行循环以查找要删除的值。因此,您不妨添加自己的for循环来执行此操作,或者array_search()为您执行此操作。

数组具有键的原因是您可以使用该键有效地获取值。

*实际上,一旦找到它,您就会停止循环,而不是继续寻找,除非可能有重复项要删除

于 2012-05-25T08:13:57.847 回答
0

唯一不使用的有效情况array_search是如果您想取消设置多个值。不过,您仍然需要使用密钥。我建议您遍历数组并删除符合您的条件的字段。

foreach($array as $key => $value) {
    if($value === $deleteValue)
        unset($array[$key]);
}
于 2012-05-25T08:16:02.307 回答