StrnatCMP est une fonction de comparaison de chaînes en PHP qui compare deux chaînes dans l'ordre naturel. Le principe de la comparaison de l'ordre naturel est: lors de la comparaison des chaînes, les parties numériques sont comparées par la taille du numérique, plutôt que dans l'ordre littéral des caractères.
<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 et $ STR2 sont deux chaînes qui doivent être comparées.
Valeur de retour: si $ str1 est inférieur à $ STR2 , renvoyez un nombre négatif; Si $ STR1 est égal à $ STR2 , retournez 0; Si $ STR1 est supérieur à $ STR2 , renvoyez un nombre positif.
<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">// Sortir 1,parce que "a10" Trier par nature dans "a2" après</span></span><span>
</span></span>
Comme indiqué ci-dessus, StrnatCMP compare les parties numériques dans la chaîne en tant que nombres au lieu de les comparer une par une par une.
Natsort est une fonction utilisée en PHP pour trier les tableaux dans l'ordre naturel. Contrairement à StrnatCMP , Natsort est une fonction de tri qui trie directement les tableaux, plutôt que de comparer les chaînes individuelles.
<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>
$ Array est le tableau à tri.
Valeur de retour: renvoyez True lorsque le tri est réussi et faux lors de l'échec.
<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>
Sortir:
<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>
Comme vous pouvez le voir, Natsort trie les éléments du tableau dans l'ordre naturel. Il se comporte de manière similaire à strnatcmp , mais la portée de l'application est un tableau, pas une seule chaîne.
Tri naturel : Strnatcmp et Natsort suivent les règles du tri naturel, en particulier lorsque les chaînes contiennent des nombres.
Comment les nombres et les caractères sont comparés : ils comparent tous les parties numériques d'une chaîne en tant que nombres, plutôt que de caractères de comparaison par le caractère.
Portée de l'application :
Strnatcmp est utilisé pour comparer l'ordre naturel de deux cordes.
Natsort est utilisé pour trier un tableau dans un ordre naturel.
Valeur de retour :
Strnatcmp renvoie un entier représentant la relation de taille entre deux chaînes.
Natsort trie le tableau et ne renvoie pas le tableau trié, mais modifie directement le tableau d'origine.
Utilisez des scénarios :
StrnatCMP convient aux situations où il est nécessaire de comparer si deux chaînes sont organisées dans un ordre naturel.
Natsort convient aux situations où il est nécessaire de trier les tableaux contenant naturellement plusieurs chaînes.