Aktueller Standort: Startseite> Neueste Artikel> Häufige Fehler, auf die Sie bei der Verwendung der Krsort -Funktion und den Lösungen stoßen können

Häufige Fehler, auf die Sie bei der Verwendung der Krsort -Funktion und den Lösungen stoßen können

gitbox 2025-09-12
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Diese Datei ist ein Beispiel,Einen Artikel zeigen PHP Mitte krsort Funktionsnutzung Artikel</span></span><span>
</span><span><span class="hljs-comment">// Code oder Kommentare, die nicht mit dem Körper zusammenhängen</span></span><span>
</span><span><span class="hljs-comment">// ------------------------------</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>verwenden krsort Häufige Fehler, die bei Funktion und Lösungen auftreten können</h1>

<p>existieren PHP Mitte,<code></span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>()

Sie werden feststellen, dass der Wert von $ sortiert einen Booleschen Typ ( wahr / falsch ), kein sortiertes Array. Der Grund dafür ist, dass Krsort () einen Booleschen Wert zurückgibt, der erfolgreich ist oder nicht.

Lösung: Verwenden Sie einfach das ursprüngliche Array:

 </span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span> =&gt; </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span> =&gt; </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-number">2</span></span><span> =&gt; </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);

2. Ignorieren Sie die Parameter der Sortyptyp

Der zweite Parameter von krsort () kann die Bestellregeln steuern. Beispielsweise ist es standardmäßig die konstante Sorte_regular , d. H. Die Schlüsselnamen werden auf die übliche Weise verglichen. Wenn der Schlüsselname des Arrays eine Zeichenfolge ist und Zahlen enthält, stimmt das Ergebnis manchmal nicht mit den Erwartungen überein.

Beispiel:

 </span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'10'</span></span><span> =&gt; </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> =&gt; </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> =&gt; </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);

Die Ausgabe kann fälschlicherweise davon ausgehen, dass es keine korrekte Sortierung gibt. Dies liegt daran, dass die Vergleichsregel Zahlen in Zeichenfolgenform als Zeichenfolgen vergleicht.

Problemumgehung: Geben Sie die Zusammenfassung explizit an, wie z. B. Sort_Numeric :

 </span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'10'</span></span><span> =&gt; </span><span><span class="hljs-string">'a'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span> =&gt; </span><span><span class="hljs-string">'b'</span></span><span>, </span><span><span class="hljs-string">'1'</span></span><span> =&gt; </span><span><span class="hljs-string">'c'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>, SORT_NUMERIC);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);

3.. Verwirrt mit Ksort ()

Viele Entwickler schreiben versehentlich Krsort () als ksort () beim Schreiben von Code. Der Unterschied zwischen den beiden ist:

  • KSORT () : Sortiert in aufsteigender Reihenfolge der Schlüsselnamen
  • krsort () : sortiert in absteigender Reihenfolge der Schlüsselnamen

Problemumgehung: Achten Sie beim Schreiben auf "R" im Funktionsnamen (Reverse, Inversion).

4.. Rufen Sie Nicht-Array-Variablen an

Wenn Sie versehentlich Krsort () für Nicht-Array-Variablen verwenden, wird ein Fehler ausgelöst:

 </span><span><span class="hljs-variable">$var</span></span><span> = </span><span><span class="hljs-string">'string'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$var</span></span><span>);

Problemumgehung: Überprüfen Sie den variablen Typ, bevor Sie anrufen:

 </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_array</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
}

Abschluss

Krsort () ist eine einfache, aber sehr praktische Sortierfunktion. Das Verständnis der Verhaltensmerkmale und das Vermeiden häufiger Missverständnisse kann uns bei der Verarbeitung von Arrays effizienter und genauer helfen. In der tatsächlichen Entwicklung ist es zusätzlich zu dem Rücksende auf den Rückgabewert und Sortierart, sondern auch auf die Verwirrung mit anderen Sortierfunktionen zu vermeiden, wodurch unnötige Debugging -Zeit verkürzt wird.