【发布时间】:2015-07-30 07:56:12
【问题描述】:
我有一个包含以下内容的 JSON 文件:
"Menus": [{
"MenuId": "1",
"MenuName": "Perencanaan dan Pengadaan",
"MenuParent": "",
"MenuLink": ""
}, {
"MenuId": "1-1",
"MenuName": "RKA / DPA",
"MenuParent": "1",
"MenuLink": ""
}, {
"MenuId": "1-1-1",
"MenuName": "Daftar RKA / DPA",
"MenuParent": "1-1",
"MenuLink": "rkbu"
},
我想将这些数据动态地放入无序列表中。所以我想要的输出是这样的(有3级列表):
Perencanaan dan Pengadaan
RKA / DPA
Daftar RKA / DPA
我试过这段代码:
echo "<ul>";
foreach($get_data['Menus'] as $node){
if(strlen($node['MenuId']) == 1){
echo "<li>" . $node['MenuName'];
echo "</li>";
}
echo "<ul>";
if(strlen($node['MenuId']) == 3){
echo "<li>".$node['MenuName']."</li>";
}
if(strlen($node['MenuId']) == 5){
echo "<ul>";
echo "<li>".$node['MenuName']."</li>";
echo "</ul>";
}
echo "</ul>";
}
echo "</ul>";
但我发现它不是动态的,因为它取决于字符串长度。我读过最好的方法是使用递归方法。但我找不到我的 JSON 文件的递归模式。有人可以帮我找到解决方案吗?谢谢
【问题讨论】:
-
如果您有 100 个节点,那么它将是 |{1-1-1....-1}|=100?
-
ya @DanielKrom 这是我的问题。这就是为什么我说它可以用递归方法来完成。但我找不到我的 JSON 文件的递归模式。我真的需要这种模式。
-
你需要递归来做到这一点..
-
但是你想做什么?只是将其打印为列表?或者?规律是什么
-
不需要递归