读取其中的所有文件和子文件夹


Read all files and subfolders in it

有人能指导我完成吗:这个函数通常读取整个文件夹架构。并显示为数组,但子文件夹也创建数组。但我不需要每个子文件夹的数组,只需要路径。有人能给我指路吗?

 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 );