为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
蓝山帝景 2019-10-29 10:39:50
我想遍历一个数组,foreach以检查是否存在一个值。如果该值确实存在,我想删除包含它的元素。我有以下代码:foreach($display_related_tags as $tag_name) {    if($tag_name == $found_tag['name']) {        // Delete element    }}找到值后,我不知道如何删除该元素。如何删除?我必须使用foreach这个问题。可能有替代方法foreach,欢迎您共享它们。
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

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


foreach ($display_related_tags as $key => $tag_name) {

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

        unset($display_related_tags[$key]);

    }

}


查看完整回答
反对 回复 2019-10-29
?
九州编程

TA贡献1785条经验 获得超4个赞

更好的解决方案是使用以下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不使用内部数组指针。


查看完整回答
反对 回复 2019-10-29
  • 3 回答
  • 0 关注
  • 3576 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信