2014-02-13 168 views
0

我正在掃描一個文件夾,它是PHP文件的子文件夾。我想將文件夾和文件存儲在一個PHP數組中,這樣我就可以在另一個頁面中創建一個樹形視圖。這是該格式,我得到的文件的路徑:PHP動態多維數組創建

  • /home/project/index.php
  • /home/project/folder/myclass.php
  • /home/project/folder/myclass2.php
  • /home/project/folder/subfolder/anotherclass.php

我想下面的數組中獲得這些文件:

  • [家] [項目] =陣列( '的index.php')
  • [家] [項目] [文件夾] =陣列(myclass.php,myclass2.php)
  • [家] [項目] [文件夾] [子文件夾] =數組(另一個class.php)

請注意,文件夾結構可以隨時更改。我怎樣才能做到這一點?

回答

0

最簡單的方法是使用內置(SPL)DirectoryIterator類和一個簡單的遞歸函數。

未經測試例如:

public function directoryToArray($directoryPath) 
{ 
    $items = new DirectoryIterator($directoryPath); 
    $data = array(); 

    foreach($items as $item) { 
    $name = $item->getFileName(); 

    if ($item->isFile()) { 
     $data[] = $name; 
    } 
    else if ($item->isDir()) { 
     $data[$name] = directoryToArray($item->getPath()); 
    } 
    } 
    return $data; 
} 
+0

謝謝您的回答。我知道這種方法,但我想知道如何將平面數組轉換爲多維數組。這將是可行的解決方法,但這不是我要找的答案,謝謝。 – Basaa