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网络公司建站源码?
下一篇:yii2.0表格如何排序
下一篇:yii2.0表格如何排序

