function recurse($dirname) { if ($dirname == '..') return; if (is_dir($dirname)) { $h = opendir($dirname); while (false !== ($file = readdir($h))) { if ($file == '.') continue; if ($file == '..') continue; if (is_dir($dirname.'/'.$file)) { $results[$dirname][] = recurse($dirname.'/'.$file); } else { $results[$dirname][] = $file; } } return $results; } else { return array(false); } }