PHP에서 $files = new DirectoryIterator()를 사용한 후 항목을 어떻게 정렬합니까?
문제
PHP의 디렉토리에 있는 파일을 다음과 같이 가져올 수 있습니다.
$files = new DirectoryIterator()
그런 다음 항목을 표시하기 위해 특정 순서로 항목을 정렬하는 쉬운 방법이 있습니까?감사해요.
해결책
반복자 내에서 데이터를 정렬하는 방법이 없는 것 같습니다.
정렬하려는 값의 키를 사용하여 표시 데이터를 중간 배열에 배치하고 배열에서 ksort()를 호출할 수 있습니다.그러나 데이터에 대해 두 번의 패스가 필요합니다.
$path = ".";
$files = new DirectoryIterator($path);
$files_array = array();
while($files->valid()) {
// sort key, ie. modified timestamp
$key = $files->getMTime();
$data = $files->getFilename();
$files_array[$key] = $data;
$files->next();
}
ksort($files_array);
foreach($files_array as $key => $file){
print $key . " => " . $file . "\n";
}
편집하다:
파일에 대해 출력하려는 모든 정보를 배열 값에 배치하는 경우 데이터를 다시 한 번 반복하는 대신 나중에 배열을 implode()하면 됩니다.
다른 팁
$files = new DirectoryIterator($path);
$i = 0;
$paths = array();
while($files->valid()) {
$paths[$i++] = $files->getFileName();
$files->next();
}
sort($paths)
당신이 찾고있는 것일 수 있습니다. 물론 그 후 선호도에 따라 경로를 정렬하기 위해 정렬 함수를 항상 적용 할 수 있습니다.
제휴하지 않습니다 StackOverflow