使用键删除索引数组中的数组元素
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来查找指针的所有索引。
<?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
}
如果我有一个值 '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来查找指针的所有索引。
<?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
}