Aktueller Standort: Startseite> Neueste Artikel> Wie benutze ich die Krsort -Funktion mit Array_Multisort für komplexere Sortierungen?

Wie benutze ich die Krsort -Funktion mit Array_Multisort für komplexere Sortierungen?

gitbox 2025-09-18
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Vorderabschnitt(Hat nichts mit dem Inhalt des Artikels zu tun)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen, um diesen Artikel zu lesen!&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aktuelle Zeit:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>) . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
Titel: Wie zu krsort Funktionen und array_multisort Verwenden Sie es für komplexere Sortierungen?

existieren PHP Mitte,Array -Sortierung ist eine übliche Operation。krsort Und array_multisort Sie sind zwei mächtige Funktionen,Aber die Verwendung ist anders。本文Wille详细说明Wie zu它们结合verwenden,Um komplexere Sortieranforderungen zu erfüllen。
*/</span>

<span class="hljs-comment">/*
1. krsort Einführung
krsort Wird verwendet, um nach den Schlüssel eines Arrays absteigend zu sortieren(Von groß nach klein)。Die Syntax ist wie folgt:
krsort(array &amp;$array, int $sort_flags = SORT_REGULAR): bool

Beispiel:
*/</span>
</span><span><span class="hljs-variable">$data</span></span><span> = [
    </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </span><span><span class="hljs-number">3</span></span><span>,
    </span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>,
    </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>,
];
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>); </span><span><span class="hljs-comment">// Ausgabearrays in absteigender Reihenfolge der Schlüssel angeordnet ['c'=&gt;3,'b'=&gt;2,'a'=&gt;1]</span></span><span>

<span class="hljs-comment">/*
2. array_multisort Einführung
array_multisort Mehrere Arrays oder mehrdimensionale Arrays können zusammen sortiert werden,Sehr geeignet für komplexe Sortierbedürfnisse。Es kann nicht nur nach Wert sortieren,Sie können auch die Sortierreihenfolge angeben(Aufsteigende Ordnung/absteigende Reihenfolge)Und类型。
*/</span>

<span class="hljs-comment">/*
3. Wille krsort Und array_multisort In Verbindung verwenden
Angenommen, wir haben ein mehrdimensionales Array,需要先按键absteigende Reihenfolge排列,再按某个子元素的值Aufsteigende Ordnung排序,Sie können die folgenden Schritte ausführen:
*/</span>
</span><span><span class="hljs-variable">$users</span></span><span> = [
    </span><span><span class="hljs-string">'user3'</span></span><span> =&gt; [</span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">25</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">88</span></span><span>],
    </span><span><span class="hljs-string">'user1'</span></span><span> =&gt; [</span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">30</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">92</span></span><span>],
    </span><span><span class="hljs-string">'user2'</span></span><span> =&gt; [</span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">22</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span> =&gt; </span><span><span class="hljs-number">95</span></span><span>],
];

</span><span><span class="hljs-comment">// Erster Schritt:按键absteigende Reihenfolge</span></span><span>
</span><span><span class="hljs-title function_ invoke__">krsort</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>);

</span><span><span class="hljs-comment">// Schritt 2:Extrahieren Sie die zu sortierenden Spalten</span></span><span>
</span><span><span class="hljs-variable">$ages</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span>);
</span><span><span class="hljs-variable">$scores</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>, </span><span><span class="hljs-string">'score'</span></span><span>);

</span><span><span class="hljs-comment">// Schritt 3:verwenden array_multisort Führen Sie mehrdimensionale Sortierung durch</span></span><span>
</span><span><span class="hljs-title function_ invoke__">array_multisort</span></span><span>(</span><span><span class="hljs-variable">$ages</span></span><span>, SORT_ASC, </span><span><span class="hljs-variable">$scores</span></span><span>, SORT_DESC, </span><span><span class="hljs-variable">$users</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$users</span></span><span>);

<span class="hljs-comment">/*
Erläuterung der Ergebnisse:
1. Erster Pass krsort 按键absteigende Reihenfolge排列用户。
2. 然后verwenden array_multisort 对用户的年龄Aufsteigende Ordnung排列,Wenn das Alter das gleiche ist,则按分数absteigende Reihenfolge排列。
3. Endlich bekommen $users 数组既保持了按键absteigende Reihenfolge的初始顺序,Implementieren Sie eine komplexe Sortierung nach Wert。

4. Tipps
- Wenn das Array groß ist,Zuerst verwenden krsort Tasten sortieren,Nutze wieder benutzen array_multisort Werte sortieren,Es kann eine klare Sortierlogik sicherstellen。
- array_multisort Unterstützt die Sortierung von Multi-Säulen,verwenden array_column Das Extrahieren der entsprechenden Spalten ist am bequemsten。
- Wenn das Array ein assoziatives Array ist,Denken Sie daran, zuerst zuerst krsort Nutze wieder benutzen array_multisort Reindedex,Um einen Schlüsseldachtungsfehlanpassen zu vermeiden。
*/</span>

<span class="hljs-comment">/*
Zusammenfassen:
Wille krsort Und array_multisort 结合verwenden,Kann komplexe mehrdimensionale Array-Sortieranforderungen implementieren。krsort 负责按键的absteigende Reihenfolge排序,array_multisort Dann können für den Wert des Arrays mehrere Bedingungen durchgeführt werden、Sortierung von Multi-Typen。Diese Kombinationsmethode ist sowohl flexibel als auch effizient,Geeignet für verschiedene praktische Anwendungsszenarien,Zum Beispiel Benutzerdatenverwaltung、Berichtsortierung usw.。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>