我使用PHP创建JSON字符串来表示目录结构,然后将其呈现为树视图,使用的树视图控件需要为每个目录/文件名添加“text”键,并使用“nodes”键每个子目录/文件,所以我使用下面的代码创建一个带有子数组的数组然后使用json_encode将数组转换为JSON格式,那么json_encode可以格式化输出以获得所需的键“text / nodes”吗?
这是使用
的代码echo json_encode(ReadFolderDirectory('some directory'));
function ReadFolderDirectory($dir,$listDir= array())
{
$listDir = array();
if($handler = opendir($dir))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub != "." && $sub != ".." && $sub != "Thumb.db")
{
if(is_file($dir."/".$sub))
{
$listDir[] = $sub;
}elseif(is_dir($dir."/".$sub))
{
$listDir[$sub] = ReadFolderDirectory($dir."/".$sub);
}
}
}
closedir($handler);
}
return $listDir;
}
我正在使用的控件在这里,JSON数据应该与他们的数据结构部分一样:https://github.com/jonmiles/bootstrap-treeview#data-structure
答案 0 :(得分:0)
echo json_encode(ReadFolderDirectory('some directory'));
function ReadFolderDirectory($dir,$listDir= array())
{
$listDir = array();
if($handler = opendir($dir))
{
while (($sub = readdir($handler)) !== FALSE)
{
if ($sub != "." && $sub != ".." && $sub != "Thumb.db")
{
$obj = new stdClass();
$obj->text = $sub;
if(is_dir($dir."/".$sub))
{
$obj->nodes = ReadFolderDirectory($dir."/".$sub);
}
$listDir[] = $obj;
}
}
closedir($handler);
}
return $listDir;
}