你如何在foreach循环中移除一个数组元素?

我想用foreach循环访问一个数组来检查值是否存在。 如果该值确实存在,我想删除包含它的元素。

我有以下代码:

foreach($display_related_tags as $tag_name) {
    if($tag_name == $found_tag['name']) {
        // Delete element
    }
}

一旦找到值,我不知道如何删除元素。 我如何删除它?

我必须使用foreach来解决这个问题。 有可能是foreach替代品,欢迎您分享。


如果您还获得了密钥,则可以像这样删除该项目:

foreach ($display_related_tags as $key => $tag_name) {
    if($tag_name == $found_tag['name']) {
        unset($display_related_tags[$key]);
    }
}

更好的解决方案是使用array_filter函数:

$display_related_tags =
    array_filter($display_related_tags, function($e) use($found_tag){
        return $e != $found_tag['name'];
    });

正如php文档所写:

由于foreach依赖于PHP 5中的内部数组指针,因此在循环中更改它可能会导致意外的行为。


foreach($display_related_tags as $key => $tag_name)
{
    if($tag_name == $found_tag['name'])
        unset($display_related_tags[$key];
}
链接地址: http://www.djcxy.com/p/5099.html

上一篇: How do you remove an array element in a foreach loop?

下一篇: writing up