php8.5
Home/ Manual/ intl / collator/ Collator::compare

Collator::compare

PHP function Edit on GitHub ✎

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

Compare two Unicode strings

Description

Oop

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

Procedural

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

Compare two Unicode strings according to collation rules.

Parameters

object

Collator object.

string1

The first string to compare.

string2

The second string to compare.

Return Values

Return comparison result:

  • 1 if string1 is greater than string2 ;
  • 0 if string1 is equal to string2;
  • -1 if string1 is less than string2 .

Returns false on failure.

Falseproblem

Examples

collator_compare() example

php
<?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 > 0 ) {
    echo "s1 is greater than s2\n";
} else if( $res < 0 ) {
    echo "s1 is less than s2\n";
} else {
    echo "s1 is equal to s2\n";
}
?>

The above example will output:

output
     s1 is greater than s2
    

Comparing strings without diacritics or case-sensitivity

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

if ( $c->compare( 'Séan', 'Sean' ) == 0 )
{
    echo "The same\n";
}

The above example will output:

output
     The same
    

This example instructs the collator to compare with only taking the base characters into account. The documentation for Collator->setStrength() explains the different strengths.

See Also

Source: reference/intl/collator/compare.xml · from the official PHP manual (php/doc-en)