父ID为的PHP文件夹数组
我试图列出一个目录中的所有文件夹(仅限于),并使用php为它们分配一个ID和一个父ID以及文件夹的路径,并生成 (folderID,“folderName”,父ID,路径) 到目前为止,我发现了一个函数,该函数将在多维数组中列出所有文件夹,如下所示:父ID为的PHP文件夹数组,php,arrays,directory-structure,Php,Arrays,Directory Structure,我试图列出一个目录中的所有文件夹(仅限于),并使用php为它们分配一个ID和一个父ID以及文件夹的路径,并生成 (folderID,“folderName”,父ID,路径) 到目前为止,我发现了一个函数,该函数将在多维数组中列出所有文件夹,如下所示: function listFolders($dir) { $dh = scandir($dir); $return = array(); foreach ($dh as $folder) { if ($fo
function listFolders($dir)
{
$dh = scandir($dir);
$return = array();
foreach ($dh as $folder) {
if ($folder != '.' && $folder != '..') {
if (is_dir($dir . '/' . $folder)) {
$return[] = array($folder => listFolders($dir . '/' . $folder));
} else {
$return[] = $folder;
}
}
}
return $return;
}
这将返回类似以下内容的数组:
Array
(
[0] => Array
(
[level1] => Array
(
[0] => New file.txt
[1] => Array
(
[level2] => Array
(
)
)
[2] => Array
(
[level2a] => Array
(
)
)
[3] => Array
(
[level2b] => Array
(
)
)
)
)
[1] => Array
(
[level1a] => Array
(
)
)
)
(1,"level1",0,"")
(2,"level2",0,"")
(3,"level3",0,"")
(4,"level2a",2,"")
(5,"level2b",4,"")
(6,"level1a",8,"")
然后我通过另一个函数运行它:
$i = 0;
$j = 1;
function recursive_foreach($array)
{
global $i, $j ;
$out = '';
foreach($array as $key => $value)
{
if (!is_numeric($key))
{
$out .= "($j,\"$key\",$i,\"\")<br />";
$j++;
}
else
{
}
if(is_array($value))
{
$out .= recursive_foreach($value);
$i++;
}
}
return $out;
}
这接近于我需要的,但我的父ID有问题。我需要的输出是:
(1,"level1",0,"path")
(2,"level2",1,"path")
(3,"level3",2,"path")
(4,"level2a",1,"path")
(5,"level2b",1,"path")
(6,"level1a",0,"path")
其中每个级别都有正确的父id和文件夹路径
关于如何做到这一点,我已经没有什么想法/知识了。有人能帮我吗