Collator::compare

collator_compare

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

Collator::compare -- collator_compareCompare two Unicode strings

Opis

Styl obiektowy

public Collator::compare ( string $str1 , string $str2 ) : int

Styl proceduralny

collator_compare ( Collator $coll , string $str1 , string $str2 ) : int

Compare two Unicode strings according to collation rules.

Parametry

coll

Collator object.

str1

The first string to compare.

str2

The second string to compare.

Zwracane wartości

Return comparison result:

  • 1 if str1 is greater than str2 ;

  • 0 if str1 is equal to str2;

  • -1 if str1 is less than str2 .

On error boolean FALSE is returned.

Ostrzeżenie

Ta funkcja może zwrócić Boolean FALSE, ale może też zwrócić wartość innego typu niż Boolean, która oznacza wartość FALSE. Aby uzyskać więcej informacji proszę zapoznać się z rozdziałem Typy logiczne. Można używać operatora === do testowania zwracanych wartości przez tę funkcję.

Przykłady

Przykład #1 collator_compare()example

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

Powyższy przykład wyświetli:


s1 is greater than s2

Zobacz też:

add a note add a note

User Contributed Notes 1 note

up
1
erik at eldata dot se
3 years 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