2015-09-04 45 views
0

如何获取目录中第一个子目录名称的列表?php - 获取第一个子目录名称列表

下面是一个例子树:

dir/
    dir_first a/
        dir second aa 
        dir second ab 
        dir second ac     
    dir_first b/
        dir second ba 
        dir second bb 
        dir second bc 
    dir first c/
        dir second ca 
        dir second cb 
        dir second cc 

我发现通过DIR here迭代的方式,但是这是列出了所有第二级儿童也是一样,也是他们的完整路径,而我只想要像dir_first a等目录名:

$iterator = new RecursiveIteratorIterator(
       new RecursiveDirectoryIterator($dir_path), 
      RecursiveIteratorIterator::SELF_FIRST); 

foreach($iterator as $file) { 
    if($file->isDir()) { 
     echo $file->getRealpath(); 
    } 
} 
+1

如果我理解你的问题的权利,你需要的是输出,但现在没有完整的路径同样的事情 - 用[基名(http://php.net/manual/en/function.basename.php )。 'echo basename($ file-> getRealpath());' – DannyPhantom

+0

是不是会输出最后一个或在这个例子中的第二级目录? – KeepMove

+0

所以你只需要dir_first a,dir_first b等? – DannyPhantom

回答

1

水珠允许你输入一个路径,然后用一个标志,只返回目录。

$files = glob('mydir/*',GLOB_ONLYDIR); 
var_dump($files); 
+0

o,是的!那是!有没有办法选择输出订单?我的意思是上升或下降?我仍然更喜欢使用'RecursiveDirectoryIterator',但如果这是唯一的方法,我会接受。 – KeepMove

+0

GLOB_NOSORT将按目录中列出的顺序返回文件。如果这不符合你的要求,你可以使用PHP的排序功能。 – user2182349