dadanny: Rekursive Funktion - Problme mit return!

Beitrag lesen

Hi, ich habe ein Problem mit folgender Rekursiven Funktion, die ich versucht habe selber zu erstellen... Die Funktion soll wie vllt für manche zu erkennen alle Unterordner und Dateien des Ordners "dateien" in den Array $dateien speichern und diesen sobald es keine weiteren Verzeichnisse gibt mit return() ausgeben!

  
function dateien($open, $dateien, $system) {  
 if($open['0'] != "") {  
  $puffer = array();  
  foreach($open as $datei) {  
   $puffer2 = scandir($datei);  
   foreach($puffer2 as $datei2) {  
    if($datei2 != "." && $datei2 != ".." && (!(in_array($datei2, $system)))) {  
     array_push($dateien, $datei."/".$datei2);  
     if(is_dir($datei."/".$datei2)) {  
      array_push($puffer, $datei."/".$datei2);  
     }  
    }  
   }  
  }  
  dateien($puffer, $dateien, $system);  
 }  
 else {  
  return $dateien;  
 }  
}  
//$system = verbotene Dateien  
$system = array(".htaccess", "back.gif", "email.gif", "exe.gif", "folder.gif", "hp.gif", "movie.gif", "pdf.gif", "pfeil.gif", "picture.gif", "sound.gif", "text.gif", "unknown.gif", "zip.gif");  
$open = array("dateien");  
$dateien = array("dateien");  
print_r(dateien($open, $dateien, $system));  

Nun habe ich folgendes Problem:
Return gibt eine leere Variable aus, d.h. nicht den Array mit den Unterordnern drin. Die Funktion funktioniert allerdings, da wenn mann return mit print_r() ersetzt, alle Dateien und Ordner richtig ausgegeben werden!

Könnt ihr mir einen Tipp geben wo mein Fehler sein könnte oder wieso ich den Array nicht als Variable aus der Funktion mit return() rausbekomme?

Schonmal thx im Vorraus für Antworten

Daniel