PHP 8.1.0 RC 2 available for testing

Collator::compare

collator_compare

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

Collator::compare -- collator_compareСравнивает две строки Unicode

Описание

Объектно-ориентированный стиль

public Collator::compare(string $string1, string $string2): int|false

Процедурный стиль

collator_compare(Collator $object, string $string1, string $string2): int|false

Сравнивает две строки Unicode в соответствии с правилами сопоставления.

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

object

Объект Collator.

string1

Первая строка для сравнения.

string2

Вторая строка для сравнения.

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

Возвращает результат сравнения:

  • 1, если string1 больше string2;

  • 0, если string1 равна string2;

  • -1, если string1 меньше string2.

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

Внимание

Эта функция может возвращать как логическое значение false, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

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

<?php
$s1 
'Hello';
$s2 'hello';

$coll collator_create'en_US' );
$res  collator_compare$coll$s1$s2 );

if (
$res === false) {
    echo 
collator_get_error_message$coll );
} else if( 
$res ) {
    echo 
"s1 больше s2\n";
} else if( 
$res ) {
    echo 
"s1 меньше s2\n";
} else {
    echo 
"s1 и s2 равны\n";
}
?>

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


s1 больше s2

Пример #2 Сравнение строк без диакритических знаков и без учёта регистра

<?php
$c 
= new Collator'en' );
$c->setStrengthCollator::PRIMARY );

if ( 
$c->compare'Séan''Sean' ) == )
{
    echo 
"Значения равны\n";
}

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


Значения равны

В этом примере Collator сравнивает, принимая во внимание только базовые символы. Документация для Collator->setStrength() объясняет различные сильные стороны.

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

  • collator_sort() - Сортирует массив с использованием указанного средства сортировки

add a note add a note

User Contributed Notes 1 note

up
1
erik at eldata dot se
9 months ago
The Collator class with method compare does what the non existing mb_strcmp, mb_strcasecmp, mb_strnatcmp and mb_strnatcasecmp would do for multibyte strings (UTF8) - but better! :-)

For "case": the Collator is case insensitive due to Collator::CASE_FIRST defaults to Collator::OFF, but can be changed with method setAttribute.

For "nat" (natural sort order for numbers): use method setAttribute with Collator::NUMERIC_COLLATION and Collator:ON to enable.
To Top