首页
下载
插件
案例
社区
文档
视频
资讯
关于
VEITOOL
联系方式
合作代理
插件协议
用户协议
登录
|
注册
全部
后端程序
前端模板
插件二开
综合求助
谈天说地
使用分享
安卓开发
关于array_merge_recursive的用法
发布:2022-11-21 11:26
分类:后端程序
评论:0
浏览:168
今天在STACK OVERFLOW看到个问题,需要将一数组结构改为另一结构,需求如下: 原数组: ``` js [ { "function_1": { "element": { "error": "0", "msg": "test" } } }, { "function_1": { "element_2": { "error": "0", "msg": "test" } } }, { "function_2": { "element": { "error": "0", "msg": "test" } } }, { "function_2": { "element_2": { "error": "0", "msg": "test" } } } ] ``` 改为: ``` js [ { "function_1": { "element": { "error": "0", "msg": "test" }, "element_2": { "error": "0", "msg": "test" } } }, { "function_2": { "element": { "error": "0", "msg": "test" }, "element_2": { "error": "0", "msg": "test" } } } ] ``` 我给的答案: ``` js function changeArr($data){ $box = $new = []; foreach ($data as $v){ $key = array_key_first($v); $i = count($box); if(in_array($key, $box)){ $keys = array_flip($box); $i = $keys[$key]; }else{ $box[] = $key; } $new[$i][$key] = isset($new[$i][$key]) ? array_merge($new[$i][$key], $v[$key]) : $v[$key]; } return $new; } ``` 结果后面有牛人提供了个更简洁的方法:array_merge_recursive来进行处理,如下: ``` js $merged = array_merge_recursive(...$array); //这里用到 array_merge_recursive 对二维度相同的键进行了组合,快捷 $result = []; foreach ($merged as $key => $data) { $result[] = [$key => $data]; } print_r($result); ```
array_merge_recursive
暂无回复!
登录后可回复
发布帖子
作者信息
fulang
等级:Lv2
积分:3958
这家伙很懒,什么都没写呢~
最近热帖
Veitool 后台开发框架 V1.0.0 正式版已开源发布
近期会有微信公众号的插件吗?
安装veitool框架教程(phpStudy)
安装veitool框架(phpStudy)
.env 文件不可写
用了token验证后的一些体会
只有挑战自我的人才能谱写出优美的旋律
PHPExcel扩展组件兼容PHP8.1及8.2相关问题修复
请问下基类中的only方法有没有详细的用法教程
Layui选项卡tab组件在隐藏容器中即使没有溢出也被强制追加下拉属性的问题解决
关于系统
VEITOOL
联系方式
合作代理
服务支持
插件中心
官方文档
社区问答
下载中心
产品下载
应用案例
新闻动态
使用协议
插件协议
用户协议
关注微信
Copyright ©2023 veitool.com 版权所有
粤ICP备17132594号-2