使用键删除索引数组中的数组元素

Remove an array element in indexed array using key

如果我有一个值 '28' 并且我想在数组中搜索包含该值的索引并将其删除。有没有办法不用 运行 for 循环遍历数组中的每个元素?

在这种情况下,我想删除元素 $terms[7] or 6 => 28

$needle = 28;
$terms = array(
  0 =>  42
  1 =>  26
  2 =>  27
  3 =>  43
  4 =>  21
  5 =>  45
  6 =>  28
  7 =>  29
  8 =>  30
  9 =>  31
  10 =>  46
);

您可以使用array_keys来查找指针的所有索引。

array_keys

<?php
    $needle = 28;
    $haystack = [42, 26, 27, 43, 21, 45, 28, 29, 30, 31, 28, 46];
    $results = array_keys($haystack, $needle, true);
    while (!empty($results)) {
      unset($haystack[array_shift($results)]);
    }
if (false !== array_search('28', $terms)) {
      unset($terms[array_search('28', $terms)]);
}

如上所述,使用array_search() 查找项目。然后,使用 unset() 将其从数组中删除。

$haystack = [42, 28, 27, 45];
$needle = 28;

$index = array_search($needle, $haystack);

if ($index !== false) {
    unset($haystack[$index]);
} else {
    // $needle not present in the $haystack
}