gpt4 book ai didi

PHP:如何在数组中填充目录结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:43 24 4
gpt4 key购买 nike

我正在开发一个管理面板,显示服务器上特定位置的目录结构。我有一个递归 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);

关于PHP:如何在数组中填充目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8479543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com