Aktueller Standort: Startseite> Neueste Artikel> Wie sortiere ich Arrays nach Stringlänge mit RSORT? Wie soll ich es in PHP schreiben?

Wie sortiere ich Arrays nach Stringlänge mit RSORT? Wie soll ich es in PHP schreiben?

gitbox 2025-09-11

In PHP wird die Funktion rsort () normalerweise verwendet, um Arrays in absteigender Reihenfolge zu sortieren, aber standardmäßig sortiert sie nach dem Wert von Array -Elementen. Wenn wir die Arrays nach der Länge der Zeichenfolge sortieren möchten, kann RSORT () diese Anforderung nicht direkt implementieren. Um das Array nach String -Länge zu sortieren, können wir usort () und eine benutzerdefinierte Vergleichsfunktion verwenden oder die Länge der Zeichenfolge vor dem Sortieren berechnen und verarbeiten.

In diesem Artikel wird die Sortierung von Arrays nach Stringlänge mit RSORT () vorgestellt und Code -Beispiele und -erklärungen angeben.

Sortieren Sie durch absteigende Reihenfolge der Stringlänge mit RSORT () in Kombination mit strlen ()

Das erste, was zu verstehen ist, ist, dass RSORT () nicht direkt basierend auf der Länge der Zeichenfolge sortiert werden kann und sie basierend auf den Werten von Array -Elementen sortiert wird. Wir müssen also usort () verwenden, um die Sortierung nach Stringlänge zu erreichen.

Usort () selbst sortiert jedoch die Anordnung des Arrays aufsteigend. Wir können eine Vergleichsfunktion anpassen, die nach der Länge der Zeichenfolge verglichen wird, wodurch die Sortierung nach Länge erreicht wird. Wir können auch die Sortiermethode festlegen, um abzusteigen, um ähnliche Effekte wie RSORT () zu erzielen.

Beispielcode:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Beispielarray</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"kiwi"</span></span><span>, </span><span><span class="hljs-string">"grapes"</span></span><span>, </span><span><span class="hljs-string">"strawberry"</span></span><span>];

</span><span><span class="hljs-comment">// Benutzerdefinierte Vergleichsfunktionen,Sortieren Sie nach Stringlänge</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">compareByLength</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$a</span></span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$b</span></span><span>) - </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>);  </span><span><span class="hljs-comment">// In absteigender Reihenfolge sortieren</span></span><span>
}

</span><span><span class="hljs-comment">// verwenden usort 和Benutzerdefinierte Vergleichsfunktionen排序</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-string">'compareByLength'</span></span><span>);

</span><span><span class="hljs-comment">// Ausgabe sortiertes 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 class="hljs-meta">?&gt;</span></span><span>
</span></span>

Code Parsen:

  1. Definieren eines Arrays : Zuerst definieren wir ein Array $ $ -Scharn , das verschiedene Fruchtnamen enthält, die Zeichenfolgen unterschiedlicher Längen enthält.

  2. Benutzerdefinierte Vergleichsfunktion : ComparyByLength () ist eine benutzerdefinierte Vergleichsfunktion, mit der die Längen von zwei Zeichenfolgen verglichen werden. Hier verwenden wir Strlen ($ B) - Strlen ($ A), um eine absteigende Reihenfolge der Länge zu erreichen. Die Funktion strlen () gibt die Länge der Zeichenfolge zurück. $ B und $ A sind zwei Saiten, die jeweils verglichen werden müssen. Wenn der Rückgabewert eine positive Zahl ist, bedeutet dies, dass die Länge von $ B größer als $ A ist und umgekehrt.

  3. Sortieren Sie Array : Die Usort () -Funktion wird verwendet, um das Array zu sortieren, und die Bestellregeln werden durch die Vergleichsfunktion bestimmt, in der wir übergeben wurden.

  4. Ausgabe -Sortierungsergebnis : Verwenden Sie schließlich print_r () , um das sortierte Array auszugeben, und die Ergebnisse werden von lang bis kurz nach Stringlänge angeordnet.

Ergebnisse sortieren:

Nach der Ausführung des obigen Codes ist die Ausgabe:

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; strawberry
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; grapes
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-number">4</span></span><span>] =&gt; kiwi
)
</span></span>

Wie Sie sehen können, stehen Elemente mit langen Saitenlängen vor.

Zusammenfassen

Obwohl RSORT () selbst nicht direkt nach Stringlänge sortiert werden kann, können wir diese Anforderung durch benutzerdefinierte Vergleichsfunktionen und usort () erfüllen. Berechnen Sie die Länge der Zeichenfolge, indem Sie Strlen () in der Funktion vergleichen, um das Array nach Länge zu sortieren. Diese Methode behält nicht nur die absteigende Reihenfolge von RSORT () bei, sondern sortiert auch Array -Elemente flexibel nach Bedarf.

Ich hoffe, diese Methode kann Ihnen helfen, Arrays in PHP besser zu manipulieren!