PHP递归删除多维数组中的某个值

发布时间 - 2026-01-11 00:41:45    点击率:

今天在做业务逻辑的过程中,需要在一个不确定的多维数组中删除某个特定的key,查了挺长时间加上自己的修改,终于满足了业务逻辑,该方法在修改后应该可以适用于很多地方,所以记录下来以备后用,我这里是一个多维数组,还是json_encode后的,主要目的是删除所有old_tags_id数组中有tag_id=264的数据,顺便要删除相应的tag_name,还有 addtag要减1,,代码如下:

先放递归函数,当然这里是核心,很多人看了这个应该就已经知道如何使用了.

public function dealMenuTagDelete(&$menuData, $tag_id)
  {
    if (!is_array($menuData)) {
      return false;
    }
    foreach ($menuData as $key => $val) {
      if ($key === 'old_tags_id') {
        foreach ($val as $tagKey => $tagVaule) {
          if ($tagVaule == $tag_id) {
            unset($menuData['old_tags_id'][$tagKey]);
            unset($menuData['old_tags'][$tagKey]);
            $menuData['addtag']--;
          }
        }
      }
      if (is_array($val)) {
        self::dealMenuTagDelete($menuData[$key], $tag_id);
      }
    }
    return $menuData;
  }

维数组长这样,还是jeson_encode后的格式:

[  {
    "typ": "res_ejcd",
    "tit": "message1",
    "data": "1@2@3",
    "subdata": {
      "zizicd1": {
        "typ": "res_wb",
        "data": "qqqq",
        "addtag": 1,
        "old_tags": [
          "\"campaign综合分析\"",
          "test add a tag"
        ],
        "old_tags_id": [
          "264",
          "17"
        ],
        "new_tags_id": [],
        "tit": "1"
      },
      "zizicd2": {
        "typ": "res_wb",
        "data": "wwww",
        "addtag": 1,
        "old_tags": [
          "test add a tag"
        ],
        "old_tags_id": [
          "17"
        ],
        "new_tags_id": [],
        "tit": "2"
      },
      "zizicd3": {
        "typ": "res_wb",
        "data": "ddd",
        "addtag": 1,
        "old_tags": [],
        "old_tags_id": [],
        "new_tags_id": [
          "new_tag1"
        ],
        "tit": "3"
      }
    },
    "addtag": 0,
    "old_tags": [],
    "old_tags_id": [],
    "new_tags_id": []
  },
  {
    "typ": "res_tw",
    "tit": "Post",
    "data": "2121",
    "subdata": null,
    "addtag": 1,
    "old_tags": [
      "“519引号阅读user message图文”"
    ],
    "old_tags_id": [
      "183"
    ],
    "new_tags_id": []
  },
  {
    "typ": "res_wb",
    "tit": "Today1",
    "data": "12312321",
    "subdata": null,
    "addtag": 1,
    "old_tags": [],
    "old_tags_id": [],
    "dynamicdata": "{\"default\":{\"message_type\":\"1\",\"val\":\"dynamic\"},\"segementation\":[{\"segId\":\"451\",\"message_type\":\"1\",\"val\":\"你属于conversation 80这一组\"},{\"segId\":\"450\",\"message_type\":\"1\",\"val\":\"poll-1212\\n有三个人,rainbow H T_T\"}]}",
    "configId": "2392",
    "new_tags_id": [
      "new_tag2"
    ]
  }
]

然后赋值,调用

$tag_id = 264;
$menuData = json_decode($data,true);//这里第二个参数用true就会转化为数组了
self::dealMenuTagDelete($menuData,$tag_id);
print_r($menuData);

以上所述是小编给大家介绍的PHP递归删除多维数组中的某个值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# php  # 多维数组  # 递归删除  # php递归调用删除数组空值元素的方法  # PHP实现双链表删除与插入节点的方法示例  # 实现php删除链表中重复的结点  # 利用PHP实现递归删除链表元素的方法示例  # 多维  # 递归  # 小编  # 自己的  # 组中  # 是一个  # 这一  # 就会  # 看了  # 在此  # 很多人  # 中有  # 长时间  # 适用于  # 第二个  # 给大家  # 三个人  # 不确定  # 转化为  # 所述 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信小程序 HTTPS报错整理常见问题及解决方案  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  ,交易猫的商品怎么发布到网站上去?  nodejs redis 发布订阅机制封装实现方法及实例代码  佛山网站制作系统,佛山企业变更地址网上办理步骤?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  如何快速搭建高效香港服务器网站?  Python结构化数据采集_字段抽取解析【教程】  如何在云服务器上快速搭建个人网站?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  原生JS实现图片轮播切换效果  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  免费网站制作appp,免费制作app哪个平台好?  如何在景安服务器上快速搭建个人网站?  Python制作简易注册登录系统  如何确保FTP站点访问权限与数据传输安全?  如何快速搭建个人网站并优化SEO?  教你用AI润色文章,让你的文字表达更专业  如何快速建站并高效导出源代码?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  文字头像制作网站推荐软件,醒图能自动配文字吗?  在线制作视频的网站有哪些,电脑如何制作视频短片?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  深入理解Android中的xmlns:tools属性  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何破解联通资金短缺导致的基站建设难题?  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  SQL查询语句优化的实用方法总结  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何用已有域名快速搭建网站?  android nfc常用标签读取总结  制作旅游网站html,怎样注册旅游网站?  如何快速生成高效建站系统源代码?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  高端建站如何打造兼具美学与转化的品牌官网?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  如何在Windows环境下新建FTP站点并设置权限?  Laravel Session怎么存储_Laravel Session驱动配置详解  如何基于PHP生成高效IDC网络公司建站源码?