文字列の比較は、プログラミング言語の文字列処理機能の重要な機能の 1 つです。比較に比較演算子 (==、<、または >) を使用することに加えて、PHP は、より複雑な文字列比較を実行できる一連の比較関数も提供します。 strcmp()、strcasecmp()、strnatcmp() などの関数。
1. バイト順で文字列を比較する
バイト順で文字列を比較するには、strcmp() 関数と strcasecmp() 関数を使用できます。比較の際、文字列内の文字の大文字と小文字を無視できます。これら 2 つの関数のプロトタイプは次のとおりです。
1 2 |
|
これら 2 つの関数の使用法は似ており、どちらも比較のために 2 つの文字列パラメーターを渡す必要があります。入力文字列 str1 と str2 を、バイトの ASCII 値に従って 2 つの文字列の最初のバイトから比較できます。それらが等しい場合、比較が完了するまで次のバイトに進みます。次の 3 つの値のいずれかを返します:
1. str1 が str2 と等しい場合は、0 を返します。
2. str1 が str2 より大きい場合、1 を返します。
3. str1 が str2 より小さい場合は、-1 を返します。
次のプログラムでは、2 つの比較文字列のサイズは、比較後の戻り値によって決まります。 strcmp() 関数を使用して文字列内の大文字と小文字を区別し、strcasecmp() 関数を使用して文字列内の文字の大文字と小文字の比較を無視します。コードは次のとおりです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
2. 自然な並べ替えによる文字列の比較
辞書のバイト順に基づく比較に加えて、PHP では文字列の比較も提供しています。 「自然順序付け」法に従って比較されます。いわゆる自然ソートとは、人々の日常生活における思考習慣に従ってソートすること、つまり、文字列内の数値部分を数値の大小に応じて比較することを指します。
たとえば、バイト単位で比較すると、「4」は「33」より大きくなります。「4」は「33」の最初の文字より大きく、自然な並べ替え規則によれば、「33」は次のようになります。 「4」より大きい。 strnatcmp() 関数を使用して、自然な並べ替えで 2 つの文字列を比較します。この関数は大文字と小文字が区別され、使用形式は strcmp() 関数と似ています。
次の例では、バブル ソート方法を使用して、2 つの比較方法により配列内の数値を含むファイル名を並べ替えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
PHP では、この関数の大文字と小文字を無視するバージョンの strnatcasecmp() も提供されており、使用方法は strnatcmp() 関数と同じです。
推奨チュートリアル: PHP ビデオ チュートリアル
以上がPHPで2つの文字列のサイズを比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。