라이브러리

[PHP] Collator::compare - 두 개의 유니코드 문자열 비교




Collator::compare


PHP의 Collator::compare 메소드는 두 개의 문자열을 비교하여 그 결과를 반환합니다. 이 메소드는 locale의 정렬 규칙에 따라 문자열을 비교합니다.

# 사용법


Collator::compare 메소드는 두 개의 문자열을 인자로 받습니다. 이 메소드는 다음과 같은 형태로 사용할 수 있습니다.

#hostingforum.kr
php

$collator = Collator::create($locale);

$result = $collator->compare($str1, $str2);



# 예제


다음 예제에서는 Collator::compare 메소드를 사용하여 두 개의 문자열을 비교합니다.

#hostingforum.kr
php

// locale을 설정합니다.

$locale = 'ko_KR';



// Collator 인스턴스를 생성합니다.

$collator = Collator::create($locale);



// 두 개의 문자열을 비교합니다.

$str1 = 'apple';

$str2 = 'banana';



// compare 메소드를 사용하여 두 문자열을 비교합니다.

$result = $collator->compare($str1, $str2);



// 결과를 출력합니다.

if ($result < 0) {

    echo "$str1은 $str2보다 작습니다.";

} elseif ($result > 0) {

    echo "$str1은 $str2보다 큽니다.";

} else {

    echo "$str1과 $str2은 같습니다.";

}



# 결과


위 예제의 결과는 다음과 같습니다.

#hostingforum.kr


apple은 banana보다 작습니다.



# locale의 영향


locale의 정렬 규칙에 따라 Collator::compare 메소드의 결과가 달라집니다. 예를 들어, 영어 locale에서는 'apple'과 'banana'은 다음과 같이 비교됩니다.

#hostingforum.kr
php

// locale을 설정합니다.

$locale = 'en_US';



// Collator 인스턴스를 생성합니다.

$collator = Collator::create($locale);



// 두 개의 문자열을 비교합니다.

$str1 = 'apple';

$str2 = 'banana';



// compare 메소드를 사용하여 두 문자열을 비교합니다.

$result = $collator->compare($str1, $str2);



// 결과를 출력합니다.

if ($result < 0) {

    echo "$str1은 $str2보다 작습니다.";

} elseif ($result > 0) {

    echo "$str1은 $str2보다 큽니다.";

} else {

    echo "$str1과 $str2은 같습니다.";

}



위 예제의 결과는 다음과 같습니다.

#hostingforum.kr


apple은 banana보다 작습니다.



# 정렬 규칙


Collator::compare 메소드는 locale의 정렬 규칙에 따라 문자열을 비교합니다. 예를 들어, 한국어 locale에서는 '가'와 '나'는 다음과 같이 비교됩니다.

#hostingforum.kr
php

// locale을 설정합니다.

$locale = 'ko_KR';



// Collator 인스턴스를 생성합니다.

$collator = Collator::create($locale);



// 두 개의 문자열을 비교합니다.

$str1 = '가';

$str2 = '나';



// compare 메소드를 사용하여 두 문자열을 비교합니다.

$result = $collator->compare($str1, $str2);



// 결과를 출력합니다.

if ($result < 0) {

    echo "$str1은 $str2보다 작습니다.";

} elseif ($result > 0) {

    echo "$str1은 $str2보다 큽니다.";

} else {

    echo "$str1과 $str2은 같습니다.";

}



위 예제의 결과는 다음과 같습니다.

#hostingforum.kr


가은 나보다 작습니다.



# 참고


Collator::compare 메소드는 locale의 정렬 규칙에 따라 문자열을 비교합니다. 따라서 locale을 설정할 때 주의가 필요합니다. 또한 Collator::compare 메소드는 두 개의 문자열을 비교할 때 정렬 규칙에 따라 결과가 달라질 수 있으므로 결과를 확인할 때 주의가 필요합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 586 페이지

검색

게시물 검색