ホームページ >バックエンド開発 >PHPチュートリアル >PHPで文字列を比較する方法
バイト比較
文字列をバイトごとに比較するのが最も一般的な方法です。使用できる関数は strcmp() と strcasecmp() です。
これら 2 つの関数の違いは、strcmp() は文字の大文字と小文字を区別するのに対し、strcasecmp() は文字の大文字と小文字を区別しないことです。この 2 つの使い方は基本的に同じです。
ここでは strcmp() のみを紹介します。
構文は次のとおりです
int strcmp(string str1,string str2)
パラメータ str1 とパラメータ str2 は、比較される 2 つの文字列で、等しい場合は 0 になります。パラメータ str1 が str2 より大きい場合、戻り値は 0 より大きく、パラメータ str1 が str2 より小さい場合、戻り値は 0 より小さくなります。
例:
<span style="background-color:rgb(255,228,255); color:rgb(102,0,0)">$str1</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"107</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0); font-family:宋体"><strong>网站工作室</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str2</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"107</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0); font-family:宋体"><strong>网站工作</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255)"><em>strcmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(228,228,255); color:rgb(102,0,0)">$str1</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str2</span><span style="background-color:rgb(247,250,255)">);<br></span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str3</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"lab"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str4</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"LAB"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255)"><em>strcmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str3</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str4</span><span style="background-color:rgb(247,250,255)">);<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255)"><em>strcasecmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str3</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str4</span><span style="background-color:rgb(247,250,255)">);</span>
実行結果は以下の通り:
310
自然ソート法による比較
PHPでは、自然ソート法による文字列比較は strnatcmp() 関数によって実装されています。 。自然な並べ替え方法では、文字列の数値部分を比較し、文字列内の数値をサイズに従って並べ替えます。
構文は次のとおりです:
int strnatcmp(string str1,string str2)
strnatcmp() 関数は、「自然な」アルゴリズムを使用して 2 つの文字列を比較します。
自然算術では、数値 2 は数値 10 より小さいです。コンピューターの並べ替えでは、10 の最初の数値が 2 未満であるため、10 は 2 未満になります。
<span style="background-color:rgb(255,228,255); color:rgb(102,0,0)">$str1</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"str3.jpg"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str2</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"str10.jpg"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0); font-family:宋体"><strong>按字节比较:</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255)">.</span><span style="background-color:rgb(247,250,255)"><em>strcmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(228,228,255); color:rgb(102,0,0)">$str1</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str2</span><span style="background-color:rgb(247,250,255)">).</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"0c6dc11e160d3b678d68754cc175188a"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0); font-family:宋体"><strong>按自然排序法比较:</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255)">.</span><span style="background-color:rgb(247,250,255)"><em>strnatcmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(228,228,255); color:rgb(102,0,0)">$str1</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str2</span><span style="background-color:rgb(247,250,255)">).</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"0c6dc11e160d3b678d68754cc175188a"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str3</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"mrsoft1"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str4</span><span style="background-color:rgb(247,250,255)">=</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"MRSOFT2"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0); font-family:宋体"><strong>按字节比较:</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255)">.</span><span style="background-color:rgb(247,250,255)"><em>strcmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str3</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str4</span><span style="background-color:rgb(247,250,255)">).</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"0c6dc11e160d3b678d68754cc175188a"</strong></span><span style="background-color:rgb(247,250,255)">;<br></span><span style="background-color:rgb(247,250,255); color:rgb(0,0,128)"><strong>echo </strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0); font-family:宋体"><strong>按自然排序法比较:</strong></span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"</strong></span><span style="background-color:rgb(247,250,255)">.</span><span style="background-color:rgb(247,250,255)"><em>strnatcmp</em></span><span style="background-color:rgb(247,250,255)">(</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str3</span><span style="background-color:rgb(247,250,255)">,</span><span style="background-color:rgb(247,250,255); color:rgb(102,0,0)">$str4</span><span style="background-color:rgb(247,250,255)">).</span><span style="background-color:rgb(247,250,255); color:rgb(0,128,0)"><strong>"0c6dc11e160d3b678d68754cc175188a"</strong></span><span style="background-color:rgb(247,250,255)">;</span>
出力結果は次のとおりです:
バイトによる比較: 1
自然なソートによる比較: -1
バイトによる比較: 1
自然なソートによる比較: 1
$str1 = "mrsoft1"; $str2 = "MRSOFT2"; echo strnatcmp($str1,$str2); //1 因为 m 大于 M $str1 = "mrsoft1"; $str2 = "mrsoft2"; echo strnatcmp($str1,$str2); //-1 这样才对 $str1 = "mrsoft11"; $str2 = "mrsoft2"; echo strnatcmp($str1,$str2); //1 这才是本意 11 大于 2
説明: 自然なソートによる比較、があります。 strnatcasecmp() 関数も strnatcmp() 関数と同じ機能を持ちますが、大文字と小文字は区別されません
<span style="font-size: 20px; color: rgb(255, 0, 0);">指定从源字符串的位置比较</span><br>
<pre style="font-family:Consolas; font-size:12pt; background-color:rgb(255,255,255)">strncmp()函数用来比较字符串中的前n个字符,该函数区分大小写
语法如下:
int strncmp(string str1,string str2,int len)
参数str1规定要比较的首个字符串。参数str2规定要比较的第二个字符串。len(必需)规定比较中所用的每个字符串的字符数。
<span style="font-family:微软雅黑; font-size:14px">如果相等则返回0;如果参数str1大于str2则返回值大于0;</span><span style="font-family:微软雅黑; font-size:14px">如果参数str1小于str2则返回值小于0。</span><br>
例如:
运算结果为
ヒント: この関数は strcmp() 関数に似ていますが、次の点が異なります。 strcmp() 長さパラメータ
はありません以上がPHPで文字列を比較する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。