Collator::compare
collator_compare
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Collator::compare -- collator_compare — ふたつの Unicode 文字列を比較する
説明
オブジェクト指向型
手続き型
ふたつの Unicode 文字列を、比較規則にもとづいて比較します。
戻り値
比較結果を返します。
-
string1
がstring2
より 大きい ときは 1 -
string1
とstring2
が 等しい ときは 0 -
string1
がstring2
より 小さい ときは -1
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 > 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";
}
?>
上の例の出力は以下となります。
s1 is greater than s2
例2 ダイアクリティカルマークや、大文字小文字の区別を無視して比較する
<?php
$c = new Collator( 'en' );
$c->setStrength( Collator::PRIMARY );
if ( $c->compare( 'Séan', 'Sean' ) == 0 )
{
echo "The same\n";
}
上の例の出力は以下となります。
The same
この例は、collator に基本的な文字のみを考慮するように指示します。 Collator->setStrength() のドキュメントは、照合強度の違いについて説明しています。
+add a note
User Contributed Notes 1 note
erik at eldata dot se ¶
4 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.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google