【发布时间】:2016-10-19 13:36:51
【问题描述】:
我有多个 json 文件,我需要将它们全部加入以创建我的动态菜单。
这是当前的输出
{
"Dashboard": {
"parent": "Dashboard",
"url": "#\/dashboard",
"submenu": []
},
"HRM": {
"submenu": [
{
"title": "Holiday",
"url": "#\/holidays"
},
{
"divider": "true"
},
{
"header": "Header 2"
},
{
"title": "Again...a link.",
"url": "errrr"
}
]
} }
这是想要的输出
{
"parent": "Dashboard",
"url": "#\/dashboard",
"submenu": []
}, {
"parent": "HRM",
"submenu": [{
"title": "Holiday",
"url": "#\/holidays"
}, {
"divider": "true"
}, {
"header": "Header 2"
}, {
"title": "Again...a link.",
"url": "errrr"
}, {
"header": "Holiday"
},
{
"title": "list",
"url": ""
},
{
"title": "test",
"url": ""
}]
}
这是我的 PHP 代码
$files = \File::allFiles($directory);
foreach ($files as $file)
{
if (preg_match("/config.json/i", $file) && \File::size($file) >0) {
$menu =json_decode(\File::get($file), TRUE)['menu'];
// $menu = $menu['menu'];
$id = $menu['parent'];
if(!empty($menu['submenu'])){
$result[$id]['submenu'] = $menu['submenu'];
}else{
$result[$id] = $menu;
}
}
}
JSON 文件 1 个示例
{
"menu": {
"parent": "Dashboard",
"url": "#/dashboard",
"submenu": [
]
}
}
JSON 文件 2 示例
{
"menu": {
"parent": "HRM",
"submenu": [
{
"title": "Holiday",
"url": "#/holidays"
},
{
"divider": "true"
},
{
"header": "Header 2"
},
{
"title": "Again...a link.",
"url": "errrr"
}
]
}
}
JSON 文件 3 示例
{
"menu": {
"parent": "HRM",
"submenu": [
{
"header": "Holiday"
},
{
"title": "list",
"url": ""
},
{
"title": "test",
"url": ""
}
]
}
}
【问题讨论】:
标签: php arrays json sorting foreach