Ich versuche, eine rekursive Funktion zu erstellen, die von dem Verzeichnis sind sie in gruppiert alle Dateien zurückgibt. Meine Dateistruktur ist wie dieserrekursive PHP-Array ausfällt
.
|-- Dir A
| +-- file 1
| +-- file 2
|-- Dir B
| +-- file 11
| +-- file 12
und ich möchte das resultierende Array
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
sein
Während die Echos ich nachweisen, dass es alle diejenigen findet, die endgültige Anordnung wie folgt aussieht:
array[0][0] = Dir A
array[1][0] = Dir B
Also die Dateien werden nicht im Array gespeichert oder vielleicht überschrieben, aber ich kann den Fehler nicht finden. Würde jemand bitte darauf hinweisen? Meine Funktion ist unten.
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;
}
Was ist, wenn in einem Verzeichnis ein Ordner und eine Datei ist? – Webdesigner
Kannst du posten, wie du 'getAllFiles()' nennst, und die Ausgabe/den Fehler bekommst du? –
Der erste Aufruf ist nur GetAllFiles ($ dir); Die Ausgabe wird in meiner Frage angezeigt. – user3052443