strnatcmpは、PHPの文字列比較関数であり、2つの文字列を自然な順序で比較します。自然な秩序比較の原理は次のとおりです。文字列を比較する場合、数値部分は文字の順序ではなく、数値のサイズによって比較されます。
<span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
$ str1と$ str2は、比較する必要がある2つの文字列です。
返品値: $ STR1が$ STR2未満の場合、負の数を返します。 $ str1が$ str2に等しい場合、0を返します。 $ STR1が$ STR2を超える場合は、正の数を返します。
<span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"a10"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"a2"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>); </span><span><span class="hljs-comment">// 出力 1,なぜなら "a10" 自然に並べ替えます "a2" 後</span></span><span>
</span></span>
上記のように、 strnatcmpは、文字列の数値部分を数字として比較します。
NatSortは、PHPでアレイを自然な順序でソートするために使用される関数です。 strnatcmpとは異なり、 Natsortは個々の文字列を比較するのではなく、アレイを直接ソートするソート関数です。
<span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> &</span><span><span class="hljs-variable">$array</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
$配列はソートする配列です。
戻り値:並べ替えが成功したときにtrueを返し、失敗したときにfalseを返します。
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"a10"</span></span><span>, </span><span><span class="hljs-string">"a2"</span></span><span>, </span><span><span class="hljs-string">"a1"</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>
出力:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">2</span></span><span>] => a1
[</span><span><span class="hljs-number">1</span></span><span>] => a2
[</span><span><span class="hljs-number">0</span></span><span>] => a10
)
</span></span>
ご覧のとおり、 NatSortはアレイ要素を自然な順序で並べ替えます。 Strnatcmpと同様に動作しますが、アプリケーションの範囲は単一の文字列ではなく配列です。
自然なソート: strnatcmpとnatsortの両方は、特に文字列に数字が含まれている場合、自然なソートのルールに従います。
数値と文字の比較方法:文字による比較ではなく、文字列の数値部分を数字として比較します。
アプリケーション範囲:
strnatcmpは、2つの文字列の自然な順序を比較するために使用されます。
NATSORTは、アレイを自然な順序でソートするために使用されます。
返品値:
strnatcmpは、2つの文字列間のサイズの関係を表す整数を返します。
Natsortは配列をソートし、ソートされた配列を返すのではなく、元の配列を直接変更します。
シナリオを使用してください:
strnatcmpは、2つの文字列が自然な順序で配置されているかどうかを比較する必要がある状況に適しています。
NATSORTは、複数の文字列を含むアレイを自然に並べ替える必要がある状況に適しています。