2017-09-27 69 views
2

我試圖讓只有第一級子目錄到數組中。 有人知道一個更苗條和更快的方式來做到這一點?PHP只有第一級的子目錄到一個數組

$dirs = new RecursiveDirectoryIterator('myroot', RecursiveDirectoryIterator::SKIP_DOTS); 
    $files = new RecursiveIteratorIterator($dirs, RecursiveIteratorIterator::SELF_FIRST); 

    $dir_array = array(); 
    foreach($files AS $file) 
    {   
     if($files->isDot()) continue; 
     if($files->getDepth() > 0) continue; 

     if($files->isDir()) 
     { 
      $dir_array[] = $file->getFilename(); 
     } 
    } 

回答

4

就算這樣簡單:

$array = glob('myroot/*', GLOB_ONLYDIR); 

,僅保留基本目錄名稱,而不是完整的路徑:

$array = array_map('basename', glob('myroot/*', GLOB_ONLYDIR)); 

http://php.net/glob

+0

一個線性水平這隻作品, 對? – Mike

+0

是的,絕對。你已經知道有遞歸迭代的迭代器。 – Calimero

+0

好吧,但這給了我完整的路徑,而不是隻有像上面這樣的subdir名稱的數組。 – Mike

相關問題