猿问

如何在foreach循环中删除数组元素?

我想遍历一个数组,foreach以检查是否存在一个值。如果该值确实存在,我想删除包含它的元素。


我有以下代码:


foreach($display_related_tags as $tag_name) {

    if($tag_name == $found_tag['name']) {

        // Delete element

    }

}

找到值后,我不知道如何删除该元素。如何删除?


我必须使用foreach这个问题。可能有替代方法foreach,欢迎您共享它们。


蓝山帝景
浏览 3577回答 3
3回答

智慧大石

如果您还获得了密钥,则可以这样删除该项目: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中的内部数组指针,因此在循环中对其进行更改可能会导致意外行为。在PHP 7中,foreach不使用内部数组指针。
随时随地看视频慕课网APP
我要回答