我想使用foreach
遍历一个数组,以检查是否存在一个值。如果该值确实存在,我想删除包含该值的元素。
我有以下代码:
foreach($display_related_tags as $tag_name) {
if($tag_name == $found_tag['name']) {
// Delete element
}
}
一旦找到值,我不知道如何删除元素。如何删除?
我不得不使用foreach
来解决这个问题。可能有foreach
的替代品,欢迎你分享它们。
发布于 2009-12-23 05:25:09
如果您也获得了密钥,则可以像这样删除该项:
foreach ($display_related_tags as $key => $tag_name) {
if($tag_name == $found_tag['name']) {
unset($display_related_tags[$key]);
}
}
发布于 2009-12-23 05:25:23
foreach($display_related_tags as $key => $tag_name)
{
if($tag_name == $found_tag['name'])
unset($display_related_tags[$key];
}
发布于 2009-12-23 06:17:11
与在数组上执行foreach()循环相比,使用array_search()查找适当的键会更快。在小数组上,我会使用foreach以获得更好的可靠性,但对于较大的数组,或者经常执行的代码,这应该是更优的:
$result=array_search($unwantedValue,$array,true);
if($result !== false) {
unset($array[$result]);
}
因为array_search()可以返回0作为$unwantedValue的索引,所以需要严格的比较操作符!==。
此外,上面的示例将只删除第一个值$unwantedValue,如果$unwantedValue可以在$array中多次出现,您应该使用array_keys()来查找所有这些值:
$result=array_keys($array,$unwantedValue,true)
foreach($result as $key) {
unset($array[$key]);
}
有关更多信息,请查看http://php.net/manual/en/function.array-search.php。
https://stackoverflow.com/questions/1949259
复制相似问题