2017-09-27 1 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 = array_map('basename', glob('myroot/*', GLOB_ONLYDIR)); 

하나의 선형 레벨 http://php.net/glob

+0

이 단지 작품을 참조하십시오

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

는 기본 디렉토리 이름이 아닌 전체 경로를 얻을 수 , 권리? – Mike

+0

예, 절대적으로. 이미 알고있는 것처럼 반복적으로 반복하는 반복자가 있습니다. – Calimero

+0

괜찮지 만 위와 같은 서브 디렉토리 이름 만 가진 배열이 아니라 전체 경로를 제공합니다. – Mike

관련 문제