如果我有值'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
);
答案 0 :(得分:4)
if (false !== array_search('28', $terms)) {
unset($terms[array_search('28', $terms)]);
}
答案 1 :(得分:2)
如上所述,使用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
}
答案 2 :(得分:1)
您可以使用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)]);
}