有人能指导我完成吗:这个函数通常读取整个文件夹架构。并显示为数组,但子文件夹也创建数组。但我不需要每个子文件夹的数组,只需要路径。有人能给我指路吗?
function dirToArray($dir) {
$result = array();
//$result1 = array();
$dummy = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value)
{
if (!in_array($value,array(".","..")))
{
if (is_dir($dir . DIRECTORY_SEPARATOR . $value))
{
$result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
}
else
{
$result[] = $dir . DIRECTORY_SEPARATOR . $value;
}
}
}
return $result;
}
以上功能运行良好,但此功能需要进行小的修改。
$dir = "test";
echo "<pre>";
print_r(dirToArray($dir));
输出:
Array
(
[admin] => Array
(
[0] => test'admin'asdf1.txt
)
[app] => Array
(
[0] => test'app'asdf1.txt
[1] => test'app'two.txt
)
[0] => test'asdf1.txt
)
预期输出为:
Array
(
[0] => test'admin'asdf1.txt
[1] => test'app'asdf1.txt
[2] => test'app'two.txt
[3] => test'asdf1.txt
)
您可以展平数组。根据这个网站,你可以使用以下功能将其压平:
function arrayFlatten($array) {
$flattern = array();
foreach ($array as $key => $value){
$new_key = array_keys($value);
$flattern[] = $value[$new_key[0]];
}
return $flattern;
}
$flattened = arrayFlatten( $dir );