<?php
function list_subdirs($dir_path, $dir_sort_cond_func = null, $sort_dir = 'asc', $recursive = false) {
$dir_entries = [];
$dir_raw_entries = glob("{$dir_path}/*");
foreach ($dir_raw_entries as $dir_entry) {
if (is_dir($dir_entry)) {
$dir_entries[] = $dir_entry;
if ($recursive) {
$dir_entries = array_merge($dir_entries, list_subdirs($dir_entry, null, null, $recursive));
}
}
}
升数此 unset($dir_raw_entries);
if (function_exists($dir_sort_cond_func)) {
吵迅 usort($dir_entries, function ($a, $b) use ($sort_dir, $dir_sort_cond_func) {
if ($dir_sort_cond_func($a) == $dir_sort_cond_func($b))
return 0;
$flag = $sort_dir == 'asc' ? -1 : 1;
毕绝 return $dir_sort_cond_func($a) > $dir_sort_cond_func($b) ? $flag : $flag * -1;
});
}
return $dir_entries;
}
var_dump(list_subdirs('/test', 'filectime', 'desc', true));