Internationalization Collator::setStrength

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — 대조 강도 설정


설명

객체 지향 스타일

public Collator::setStrength(int $strength): bool

절차적 스타일

collator_set_strength(Collator $object, int $strength): bool

» ICU Collation Service는 여러 수준의 비교를 지원합니다('Levels'이라고 하지만 'Strengths'이라고도 함). 이러한 범주를 사용하면 ICU에서 지역 규칙에 따라 문자열을 정확하게 정렬할 수 있습니다. 그러나 레벨을 선택적으로 사용함으로써 다양한 매칭 조건으로 텍스트에서 문자열 검색을 수행할 수 있습니다.

  1. Primary Level:일반적으로 이것은 기본 문자 간의 차이를 나타내는 데 사용됩니다(예: "a" < "b"). 가장 강력한 차이점입니다. 예를 들어 사전은 기본 문자에 따라 다른 섹션으로 나뉩니다. 이를 level 1 강도라고도 합니다.

  2. Secondary Level:문자의 액센트는 2차 차이점으로 간주됩니다(예: "as" < "à" < "at"). 문자 간의 다른 차이점은 언어에 따라 이차적 차이점으로 간주될 수도 있습니다. 문자열에 1차 차이가 있는 경우 2차 차이는 무시됩니다. 이를 level 2 강도라고도 합니다.

    메모:

    참고: 일부 언어(예: 덴마크어)에서는 악센트가 있는 특정 문자가 별도의 기본 문자로 간주됩니다. 그러나 대부분의 언어에서 악센트가 있는 문자는 해당 문자의 악센트가 없는 버전과 이차적인 차이점만 있습니다.

  3. Tertiary Level:문자의 대소문자 차이는 3차 수준에서 구분됩니다(예: "ao" < "Ao" < "aò"). 또한 문자의 변형은 3차 수준의 기본 형식(예: "A" 및 " ")과 다릅니다. 또 다른 예는 큰 가나와 작은 가나의 차이입니다. 문자열에 1차 또는 2차 차이가 있는 경우 3차 차이는 무시됩니다. 이것은 level 3 강도라고도 합니다.

  4. Quaternary Level:수준 1-3에서 구두점을 무시하면(구두점 무시 참조) 구두점이 있는 단어와 없는 단어를 구별하기 위해 추가 수준을 사용할 수 있습니다(예: "ab" < "a-b" < "aB"). 1차, 2차 또는 3차 차이가 있는 경우 이 차이는 무시됩니다. 이것은 레벨 4 강도라고도 합니다. level 4은 구두점을 무시해야 하거나 일본어 텍스트를 처리할 때만 사용해야 합니다(히라가나 처리 참조).

  5. Identical Level:다른 모든 레벨이 동일할 경우 동일한 레벨이 순위결정으로 사용됩니다. 각 문자열의 NFD 형식의 유니코드 코드 포인트 값은 수준 1-4에서 차이가 없는 경우를 대비하여 이 수준에서 비교됩니다. 예를 들어, 히브리어 칸틸레이션 기호는 이 수준에서만 구별됩니다. 두 문자열 간의 코드 포인트 값 차이는 극히 드물기 때문에 이 수준은 드물게 사용해야 합니다. 이 수준을 사용하면 증분 비교 및 ​​정렬 키 생성(또한 정렬 키 길이 증가) 모두에 대한 성능이 크게 저하됩니다. level 5 강도라고도 합니다.

예를 들어, 사람들은 텍스트를 검색할 때 악센트를 무시하거나 악센트와 대소문자를 무시하도록 선택할 수 있습니다. 거의 모든 문자는 처음 세 수준으로 구별되며 대부분의 로케일에서 기본값은 Tertiary입니다. 그러나 Alternate가 Shifted로 설정된 경우 Quaternary 강도를 사용하여 공백, 구두점 및 기호 간의 연결을 끊을 수 있습니다. 그렇지 않으면 무시됩니다. 문자 간에 매우 미세한 구분이 필요한 경우 동일한 강도를 사용할 수 있습니다(예: 동일한 강도는 수학 굵은 글씨 A와 수학 기울임꼴 작은 A를 구분합니다.). 그러나 3차 동일 강도보다 높은 수준을 사용하면 정렬 키가 상당히 길어지고 동일한 문자열에 대한 문자열 비교 성능이 느려집니다.


매개변수

object
Collator object.
strength
Strength to set.

가능한 값은 다음과 같습니다.

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_STRENGTH

반환 값

성공하면 true를, 실패하면 false를 반환합니다.


Examples

예제 #1 collator_set_strength() 예제

                  
<?php
$arr  = array( 'aò', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Sort array using default strength.
collator_sort( $coll, $arr );
var_export( $arr );

// Sort array using primary strength.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>
                  
                

위의 예는 다음을 출력합니다.

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'aò',
)
array (
  0 => 'aò',
  1 => 'Ao',
  2 => 'ao',
)
                

기타