PHP 8.1.0 RC 2 available for testing

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 поддерживает множество уровней сравнения (называемых "Уровни", но также известных как "Сила сравнения"). Наличие этих категорий позволяет ICU сортировать строки точно в соответствии с местными соглашениями. Однако, позволяя выборочно использовать уровни, поиск строки в тексте может выполняться с различными условиями сопоставления.

  1. Первичный уровень: Обычно используется для обозначения различий между основными символами (например, "a" < "b"). Это самая большая разница. Например, словари разбиты на разные разделы по основному символу. Также называется силой level 1.

  2. Вторичный уровень: Акценты в символах считаются вторичными отличиями (например, "as" < "às" < "at"). Другие различия между буквами также можно считать вторичными, в зависимости от языка. Вторичное отличие игнорируется, если есть первичное различие где-либо в строках. Также называется силой level 2.

    Замечание:

    Примечание: В некоторых языках (например, датском) определённые буквы с диакритическими знаками считаются отдельными базовыми символами. Однако, в большинстве языков, буква с ударением имеет лишь второстепенное отличие от версии этой буквы без ударения.

  3. Третичный уровень: Различия в верхнем и нижнем регистре символов различаются на третичном уровне (например, "ao" < "Ao" < "aò"). Кроме того, вариант буквы отличается от базовой формы на третичном уровне (например, "A" и " "). Другой пример - разница между большой и маленькой Кана. Третичное различие игнорируется, если где-либо в строках есть первичное или вторичное различие. Также называется силой level 3.

  4. Четвертичный уровень: Когда пунктуация игнорируется (смотрите Игнорирование знаков препинания) на уровнях 1-3, можно использовать дополнительный уровень для различения слов с пунктуацией и без неё (например, "ab" < "a-b" < "aB"). Эта разница игнорируется, если есть первичная, вторичная или третичная разница. Также называется силой level 4. Четвертичный уровень следует использовать только в том случае, если требуется игнорирование знаков препинания или при обработке японского текста (смотрите Обработка хираганы).

  5. Идентичный уровень: Когда все остальные уровни равны, идентичный уровень используется в качестве тай-брейка. Значения кодовых точек Unicode формы NFD каждой строки сравниваются на этом уровне, на всякий случай, если нет разницы на уровнях 1-4. Например, кантиляционные знаки иврита различаются только на этом уровне. Этот уровень следует использовать с осторожностью, поскольку разница только в значениях кодовых точек между двумя строками является крайне редким явлением. Использование этого уровня существенно снижает производительность как для инкрементного сравнения, так и для генерации ключа сортировки (а также увеличивает длину ключа сортировки). Также называется силой level 5.

Например, люди могут игнорировать акценты или игнорировать акценты и регистр при поиске текста. Почти все символы различаются по первым трём уровням, поэтому в большинстве языков значение по умолчанию - третичный. Однако, если для параметра "Альтернативный" задано значение "Shifted", то четвертичную силу можно использовать для разрыва связей между пробелами, пунктуацией и символами, которые в противном случае были бы проигнорированы. Если требуются очень тонкие различия между символами, тогда можно использовать Идентичный уровень (например, Идентичный уровень различает Mathematical Bold Small A и the Mathematical Italic Small A.). Однако использование уровней выше, чем третичный, идентичная сила приводит к значительно более длинным ключам сортировки и снижению производительности сравнения строк для равных строк.

Список параметров

object

Объект Collator.

strength

Strength to set.

Допустимые значения:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Возвращаемые значения

Возвращает true в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Пример использования collator_set_strength()

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

// Сортировка массива с использованием силы по умолчанию.
collator_sort$coll$arr );
var_export$arr );

// Сортировка массива с использованием первичной силы.
collator_set_strength$collCollator::PRIMARY );
collator_sort$coll$arr );
var_export$arr );
?>

Результат выполнения данного примера:

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

Смотрите также

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top