我試圖創建一個返回全部由他們在分組目錄中的文件的遞歸函數。我的文件結構是這樣的遞歸PHP陣列出現故障
.
|-- Dir A
| +-- file 1
| +-- file 2
|-- Dir B
| +-- file 11
| +-- file 12
,我希望得到的數組是
array[0][0] = Dir A
array[0][1] = file 1
array[0][2] = file 2
array[1][0] = Dir B
array[1][1] = file 11
array[1][2] = file 12
雖然回聲的我已經表明,它發現所有這些,最終陣列看起來像這樣:
array[0][0] = Dir A
array[1][0] = Dir B
因此文件沒有被存儲在數組中,或者被覆蓋,但是我找不到這個錯誤。有人請指出嗎?我的功能如下。
function GetAllFiles($dir = '.', $fileArray = '', $idx = -1){
if ($fileArray == '') $fileArray = array();
if(is_dir($dir)) {
if($dh = opendir($dir)){
while($file = readdir($dh)) {
if($file != '.' && $file != '..'){
if(is_dir($dir . $file)){
$idx++;
echo 'A '.$idx . ' - ' .$dir . $file.'<br>';
$fileArray[$idx][] = $dir . $file;
GetAllFiles($dir . $file . '/', $fileArray, $idx);
}else{
echo 'B '.$idx. ' - ' .$dir . $file.'<br>';
$fileArray[$idx][] = $dir . $file;
}
}
}
}
closedir($dh);
}
return $fileArray;
}
如果在一個目錄中是一個文件夾和一個文件呢? – Webdesigner
你可以發佈你如何調用'getAllFiles()'和你正在得到的輸出/錯誤嗎? –
最初的調用只是GetAllFiles($ dir);輸出顯示在我的問題中。 – user3052443