뭔가
$contents = array();
while (($sub = readdir($handler)) !== FALSE) {
if ($sub !== '.' && $sub !== '..') {
$contents[] = array('is_dir' => is_dir($sub), 'name' => $sub);
}
}
closedir($handler);
usort($contents, function($a, $b) {
if ($a['is_dir'] && !$b['is_dir']) {
return -1;
}
else if (!$a['is_dir'] && $b['is_dir']) {
return 1;
}
// they are either both files or both directories
else {
return strcmp($a['name'], $b['name']);
}
});
foreach ($contents as $c) {
echo $c['name'] . PHP_EOL;
}
은 다음 디렉토리에 테스트 작동합니다 :
I는 알파벳 순으로 나에게 정렬 된 목록을 제공하는 다음 코드를 사용하고 있지만, 먼저 디렉토리를 진행하지 않습니다 (디렉토리에 확장자가 없음) :
ls
1 findp.php fooo simple_html_dom.php test test.txt
출력 :
1
fooo
test
findp.php
simple_html_dom.php
test.txt
멋진데, 나는 스케일러 어레이가 아닌 값에 대해 '정렬'을 잘하지 못했습니다. – robbmj