Sortering af fil- og mappenavne
Jeg bruger følgende til at iterere en mappe samt alle undermapper:
<?php
function fd($directory) {
$r_val = array();
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (is_dir($directory. "/" . $file)) {
$r_val = array_merge($r_val, fd($directory. "/" . $file));
$file = $directory . "/" . $file . "/#dir#";
$r_val[] = preg_replace("/\/\//si", "/", $file);
} else {
$file = $directory . "/" . $file;
$r_val[] = preg_replace("/\/\//si", "/", $file);
}
}
}
closedir($handle);
}
return $r_val;
}
$upload_dir_full_path = $_SERVER["DOCUMENT_ROOT"]."/test";
$files = fd("$upload_dir_full_path");
natcasesort($files);
foreach ($files as $value) {
$clean_value = str_replace($upload_dir_full_path."/", "", $value);
if (strstr($clean_value, "/")) {
if (strstr($clean_value, "#dir#")) {
$directory_name = str_replace("/#dir#", "", $clean_value);
echo $directory_name." (Mappe)<br>";
} else {
$filename = str_replace("/".$directory_name."/", "", $clean_value);
echo $filename."<br>";
}
}
}
?>
Jeg vil gerne have mit array til at være som det er, dog med sortering således at output bliver med mapperne først og dernæst filnavnene.
Hvordan kan jeg gøre det?
