我正在开发一个管理面板,显示服务器上特定位置的目录结构。我有一个递归 php 函数,可以迭代每个文件和文件夹。我不明白的是如何将此目录结构存储在 php 关联数组中,如下所示:
array[foldername1][0]=file; // if the foldername1 contains a file
array[foldername1][foldername2][0]=file //if foldername1 contains another folder(foldername2) along with the file.
我试图遵循的规则是;文件夹应始终是键,文件应始终位于如下索引处:
array[folder1][folder2][0]=file1;
array[folder1][folder2][1]=file2;
填充这个关联数组的函数应该是通用的,因为我们永远不知道目录结构是什么。我想将此数组 json_encode 返回给我的客户端并在 JavaScript 中处理它,这目前不是问题。
如果这是一个不好的方法,请告诉我,因为可能有更好的方法来做到这一点。我想过使用平面阵列,但我想这是一个糟糕的设计。
$ritit = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__), RecursiveIteratorIterator::CHILD_FIRST);
$r = array();
foreach ($ritit as $splFileInfo) {
$path = $splFileInfo->isDir()
? array($splFileInfo->getFilename() => array())
: array($splFileInfo->getFilename());
for ($depth = $ritit->getDepth() - 1; $depth >= 0; $depth--) {
$path = array($ritit->getSubIterator($depth)->current()->getFilename() => $path);
}
$r = array_merge_recursive($r, $path);
}
print_r($r);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)