【发布时间】:2015-12-26 09:33:38
【问题描述】:
例如,我在下面有一个 build.json 文件。包含我在 JSON 中创建的基本文件夹/文件结构。
{
"folders": [
{
"name": "folder-a",
"files": [
{
"name": "file-a.html"
},
{
"name": "file-b.html"
}
],
"folders": [
{
"name": "sub-folder-a",
"files": [
{
"name": "sub-file-a.html"
},
{
"name": "sub-file-b.html"
}
]
}
]
},
{
"name": "folder-b",
"files": [
{
"name": "file-a.html"
},
{
"name": "file-b.html"
}
]
}
]
}
现在我在下面创建了简单的 PHP 代码,它可以循环遍历数组的第一部分。当然,如果我继续在第一个 foreach 中进行 foreach 循环,我可以继续遍历数组。问题是我不知道数组中有多少文件夹/文件。关于如何在不知道循环多少次的情况下继续循环的任何想法?谢谢!
$json = file_get_contents('build.json');
$decode = json_decode($json);
foreach($decode as $key => $val){
foreach($val as $valKey => $data){
var_dump($data);
}
}
【问题讨论】:
-
除非您知道文件夹的最大嵌套级别,否则您可能希望使用某种形式的递归。
-
我不知道嵌套的级别。而且我在谷歌上搜索了很多关于递归的内容,只是不确定如何在循环中编写它。
标签: php arrays json loops recursion