思路:首先獲取一個目錄下所有檔案名可以使用 scandir() 函式,scandir() 函式回傳指定目錄中的檔案和目錄的陣列,因為這個回傳的資料不包含子目錄下檔案,所以可以使用遞回來處理,
/** * @param $dir 要查找的檔案路徑 * @param $dir_array 存盤檔案名的陣列 */ function find_files($dir, &$dir_array) { // 讀取當前目錄下的所有檔案和目錄(不包含子目錄下檔案) $files = scandir($dir); if (is_array($files)) { foreach ($files as $val) { // 跳過. 和 .. if ($val == '.' || $val == '..') continue; // 判斷是否是目錄 if (is_dir($dir . '/' . $val)) { // 將當前目錄添加進陣列 $dir_array[$dir][] = $val; // 遞回繼續往下尋找 find_files($dir . '/' . $val, $dir_array); } else { // 不是目錄也需要將當前檔案添加進陣列 $dir_array[$dir][] = $val; } } } } // 呼叫 $folder_list = array(); find_files('/demo/', $folder_list); var_dump($folder_list);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/304806.html
標籤:PHP
上一篇:PHP實作二分查找演算法
