我有一个数组,如下:[312, 401, 1599, 3]
使用array_diff( [312, 401, 1599, 3], [401] )
可以删除一个值,例如我删除了值为401的元素。
但是如果我有这个数组:[312, 401, 401, 401, 1599, 3],如何只删除一个值为401的元素?
无论我删除第一个还是最后一个元素都没有关系,我只需要删除一个401值。如果我想删除所有的401值,我需要删除三次。
谢谢!
我有一个数组,如下:[312, 401, 1599, 3]
使用array_diff( [312, 401, 1599, 3], [401] )
可以删除一个值,例如我删除了值为401的元素。
但是如果我有这个数组:[312, 401, 401, 401, 1599, 3],如何只删除一个值为401的元素?
无论我删除第一个还是最后一个元素都没有关系,我只需要删除一个401值。如果我想删除所有的401值,我需要删除三次。
谢谢!
使用array_search
函数,您可以获取给定值的第一个匹配键,然后可以使用unset
函数将其删除。
if (false !== $key = array_search(401, $array)) {
unset($array[$key]);
}
array_intersect
,您可以一次检索所有匹配的键,这使您能够决定要使用unset
删除其中哪个特定的键。if (($key = array_search(401, $array)) !== false) {
unset($array[$key]);
}
PHP手册: