Aktueller Standort: Startseite> Neueste Artikel> Wie ist die Beziehung und der Unterschied zwischen STRNATCMP- und NATSORT -Funktionen in PHP?

Wie ist die Beziehung und der Unterschied zwischen STRNATCMP- und NATSORT -Funktionen in PHP?

gitbox 2025-07-26

1. Einführung in die STRNATCMP -Funktion

STRNATCMP ist eine String -Vergleichsfunktion in PHP, die zwei Zeichenfolgen in natürlicher Reihenfolge vergleicht. Das Prinzip des natürlichen Ordnungvergleichs lautet: Beim Vergleich von Saiten werden die numerischen Teile eher mit der Größe des numerischen als in der wörtlichen Reihenfolge der Zeichen verglichen.

Grammatik:

 <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 und $ str2 sind zwei Saiten, die verglichen werden müssen.

  • Rückgabewert: Wenn $ str1 weniger als $ str2 ist, geben Sie eine negative Zahl zurück. Wenn $ str1 gleich $ str2 ist, return 0; Wenn $ str1 größer als $ str2 ist, geben Sie eine positive Zahl zurück.

Beispiel:

 <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">// Ausgabe 1,Weil "a10" Von Natur aus sortieren "a2" nach</span></span><span>
</span></span>

Wie oben gezeigt, vergleicht Strnatcmp die numerischen Teile in der Zeichenfolge als Zahlen, anstatt sie nacheinander einzeln zu vergleichen.


2. Einführung in die Natsort -Funktion

Natsort ist eine Funktion, die in PHP verwendet wird, um Arrays in natürlicher Reihenfolge zu sortieren. Im Gegensatz zu Strnatcmp ist Natsort eine Sortierfunktion, die Arrays direkt sortiert, anstatt einzelne Zeichenfolgen zu vergleichen.

Grammatik:

 <span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$array</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
  • $ Array ist das zu sortierende Array.

  • Rückgabewert: Return True , wenn die Sortierung erfolgreich ist, und falsch beim Versagen.

Beispiel:

 <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>

Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; a1
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; a2
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; a10
)
</span></span>

Wie Sie sehen können, sortiert Natsort Array -Elemente in natürlicher Reihenfolge. Es verhält sich ähnlich wie Strnatcmp , aber der Anwendungsbereich ist ein Array, kein einzelner Zeichenfolge.


3.. Beziehungen und Unterschiede

Beziehung:

  • Natürliche Sortierung : Sowohl Strnatcmp als auch Natsort befolgen die Regeln der natürlichen Sortierung, insbesondere wenn Zeichenfolgen Zahlen enthalten.

  • Wie Zahlen und Zeichen verglichen werden : Sie alle vergleichen die numerischen Teile in einer Zeichenfolge als Zahlen und nicht mit Vergleichszeichen durch Zeichen.

der Unterschied:

  • Anwendungsumfang :

    • STRNATCMP wird verwendet, um die natürliche Reihenfolge von zwei Saiten zu vergleichen.

    • Natsort wird verwendet, um ein Array in einer natürlichen Reihenfolge zu sortieren.

  • Rückgabewert :

    • STRNATCMP gibt eine Ganzzahl zurück, die die Größenbeziehung zwischen zwei Zeichenfolgen darstellt.

    • Natsort sortiert das Array und gibt das sortierte Array nicht zurück, sondern modifiziert das ursprüngliche Array direkt.

  • Szenarien verwenden :

    • STRNATCMP eignet sich für Situationen, in denen es notwendig ist, zu vergleichen, ob zwei Zeichenfolgen in einer natürlichen Reihenfolge angeordnet sind.

    • Natsort eignet sich für Situationen, in denen es notwendig ist, Arrays zu sortieren, die mehrere Zeichenfolgen enthalten.