
natcasesort 함수는 대소문자를 구분하지 않고 정렬을 수행하는 함수입니다. 그러나 동일한 문자가 대/소문자를 구분하여 나누어지기 때문에, 정렬 결과가 예상과 다를 수 있습니다.
예를 들어, 'Apple'과 'apple'은 동일한 문자열로 간주되지만, natcasesort 함수를 사용하면 'Apple'과 'apple'은 각각 다른 문자열로 간주됩니다.
이러한 문제를 해결하려면, 문자열을 모두 소문자 또는 대문자로 변환하여 정렬해야 합니다. 이를 위해 strtolower() 또는 strtoupper() 함수를 사용할 수 있습니다.
예를 들어, 다음과 같이 문자열을 모두 소문자로 변환하여 정렬할 수 있습니다.
#hostingforum.kr
php
$array = array('Apple', 'apple', 'Banana', 'banana');
usort($array, function($a, $b) {
return strcmp(strtolower($a), strtolower($b));
});
print_r($array);
또는 다음과 같이 문자열을 모두 대문자로 변환하여 정렬할 수 있습니다.
#hostingforum.kr
php
$array = array('Apple', 'apple', 'Banana', 'banana');
usort($array, function($a, $b) {
return strcmp(strtoupper($a), strtoupper($b));
});
print_r($array);
이러한 방법으로, natcasesort 함수를 사용할 때 주의해야 하는 점을 해결할 수 있습니다.
2025-03-08 04:30