
CrudOperationSortable 클래스의 sort 메서드는 기본적으로 PHP의 built-in sort 함수를 사용합니다. 내림차순으로 정렬하는 로직은 다음과 같습니다.
1. 데이터를 정렬하기 전에, 데이터의 타입을 확인하여 정렬이 가능하도록 변환합니다. (예: 숫자는 정수로, 문자는 대문자로 변환)
2. PHP의 built-in sort 함수를 사용하여 데이터를 정렬합니다. 내림차순으로 정렬하기 위해, SORT_DESC 옵션을 사용합니다.
3. 정렬이 완료된 후, 데이터의 타입을 원래의 타입으로 복원합니다.
sort 메서드의 시간 복잡도는 O(n log n)입니다. 이 이유는 PHP의 built-in sort 함수가 퀵소트 알고리즘을 사용하기 때문입니다.
예시 코드는 다음과 같습니다.
#hostingforum.kr
php
class CrudOperationSortable {
public function sort($data, $direction = 'asc') {
if ($direction == 'desc') {
usort($data, function($a, $b) {
return $b <=> $a;
});
} else {
usort($data, function($a, $b) {
return $a <=> $b;
});
}
return $data;
}
}
$crud = new CrudOperationSortable();
$data = [3, 2, 5, 1, 4];
$sortedData = $crud->sort($data, 'desc');
print_r($sortedData); // [5, 4, 3, 2, 1]
위 코드에서, usort 함수를 사용하여 데이터를 정렬합니다. 내림차순으로 정렬하기 위해, usort 함수의 두 번째 인자로 callback 함수를 전달합니다. 이 callback 함수는 두 개의 데이터를 비교하여, 내림차순으로 정렬하기 위해 $b <=> $a를 반환합니다.
2025-07-26 10:13