【发布时间】:2014-07-30 01:53:15
【问题描述】:
我正在尝试获取格式如下的目录的多维数组:
[
{
"text": "another_folder",
"href": "gui\/default\/uploads\/another_folder",
"depth": 0
},
{
"text": "subfold",
"href": "gui\/default\/uploads\/subfold",
"depth": 0,
"nodes": {
"text": "sub-subfold",
"href": "gui\/default\/uploads\/subfold\/sub-subfold",
"depth": 1,
}
}
]
我想使用 RecursiveIterators。到目前为止,我所做的是获取给定路径中列出的所有目录。我需要进入孩子们那里,这是我堆叠的地方。
public function list_folders($folder_path='') {
if(!$folder_path) $folder_path = $this->upl_path;
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($folder_path),
RecursiveIteratorIterator::SELF_FIRST);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$r = array();
$counter = 0
foreach ($iterator as $splFileInfo) {
if($splFileInfo->isDir()) {
$r[$counter] = array(
'text' => $splFileInfo->getFilename(),
'href' => str_replace('\\','/',$splFileInfo->getPathname())
);
if(How to check if it has children) {
$result[$counter] += array('nodes'=> CALL RECURSIVE HERE ? );
}
$counter++;
}
echo json_encode($r,JSON_PRETTY_PRINT);
}
我很乐意使用任何想法或帮助。
【问题讨论】:
标签: php file recursion multidimensional-array iterator