<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Code hat nichts mit dem Inhalt des Artikels zu tun,Es trennt sich nur</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">str_repeat</span></span><span>(</span><span><span class="hljs-string">"-"</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
rsort Und asort existieren PHP Was ist der Unterschied in der Sortierung?Welche Szenarien sind für jeden geeignet??
existieren PHP Mitte,Array -Sortierung ist eine sehr häufige Operation,Und rsort Und asort werden zwei häufig verwendete Sortierfunktionen。Obwohl sie alle verwendet werden, um Arrays zu sortieren,但existieren排序方式Und排序结果的保留上有明显的区别。
</span><span><span class="hljs-number">1</span></span><span>. rsort — In umgekehrter Reihenfolge sortieren(Sortieren absteigend)
</span><span><span class="hljs-title function_ invoke__">rsort</span></span><span>() 函数将数组按照值进行Sortieren absteigend(Von groß nach klein),Und setzen Sie den Index des Arrays zurück,Der Index wird neu zugewiesen </span><span><span class="hljs-number">0</span></span><span> Die kontinuierliche Anzahl des Anfangs。
Beispielcode:
```php
</span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">rsort</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>);
</span></span>
Ausgangsergebnis:
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => </span><span><span class="hljs-number">4</span></span><span>
[</span><span><span class="hljs-meta">1</span></span><span>] => </span><span><span class="hljs-number">3</span></span><span>
[</span><span><span class="hljs-meta">2</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[</span><span><span class="hljs-meta">3</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>
Beachten Sie, dass der ursprüngliche Schlüssel des Arrays verworfen wird und das Array zu einem indizierten Array wird.
Anwendbare Szenarien:
Kümmere dich nur um die Wertsortierung von Array -Elementen und muss die Schlüsselnamen nicht bewahren.
Ordnen Sie beispielsweise die Nummernliste in absteigender Reihenfolge an, um Ranglisten, Bewertungen usw. anzuzeigen.
ASORT - Sortieren Sie nach Wert und halten Sie die Schlüsselnamen zugeordnet
Die asort () -Funktion wird nach Werten (von klein bis groß) sortiert, hält jedoch die Schlüsselnamen des Arrays unverändert. Das heißt, das Schlüsselwertpaarbeziehung des Arrays nach dem Sortieren gibt es noch.
Beispielcode:
<span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-string">'d'</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">asort</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>);
</span></span>
Ausgangsergebnis:
<span><span>Array
(
[</span><span><span class="hljs-meta">b</span></span><span>] => </span><span><span class="hljs-number">1</span></span><span>
[</span><span><span class="hljs-meta">d</span></span><span>] => </span><span><span class="hljs-number">2</span></span><span>
[</span><span><span class="hljs-meta">a</span></span><span>] => </span><span><span class="hljs-number">3</span></span><span>
[</span><span><span class="hljs-meta">c</span></span><span>] => </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>
Anwendbare Szenarien:
Szenarien, in denen Schlüsselnamen nach Wert sortiert und beibehalten werden müssen.
Zum Beispiel nach Produktpreis sortieren, aber die Identifikations -ID des Produkts muss beibehalten werden.
Wird für die assoziative Array -Sortierung verwendet, um den anschließenden Zugriff auf den entsprechenden Wert durch Schlüssel zu erleichtern.
Zusammenfassungsvergleich:
Funktion | Sortierrichtung | Ob Sie Schlüsselnamen behalten sollen | Geeignete Szenarien |
---|---|---|---|
Rsort | absteigende Reihenfolge | Nicht reserviert | Sortieren Sie einfach den Wert, der Schlüsselname ist irrelevant, z. B. die Rangliste |
Asort | Aufsteigende Ordnung | Reservierte Schlüsselnamen | Halten Sie Schlüsselwertverbände wie assoziative Array-Sortierung beibehalten |
Darüber hinaus verfügt PHP hat auch Arsort zum Sortieren absteigender Reihenfolge und des Aufbewahrens von Schlüsselnamen. Sortieren werden für die Sortierung aufsteigender Reihenfolge verwendet, jedoch nicht die Schlüsselnamen beibehalten. Abhängig von verschiedenen Anforderungen kann die Auswahl der richtigen Sortierfunktion den Code prägnanter und effizienter machen.
Durch das Verständnis der Unterschiede zwischen RSORT und ASORT können wir die Array -Sortierung besser umgehen, Datenverwirrung vermeiden und die Zuverlässigkeit und Lesbarkeit der Programme verbessern.
<php // Der Endteil bezieht sich nicht auf den Inhalt des Artikels echo str_repeat ("-", 50). "\N"; ?> <span></span>