<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Der Beginn dieses Artikels bezieht sich nicht mit dem Code</span></span><span>
</span><span><span class="hljs-comment">// Autor: ChatGPT</span></span><span>
</span><span><span class="hljs-comment">// Datum: 2025-08-23</span></span><span>
</span><span><span class="hljs-comment">// ---------------------- Textteiler ----------------------</span></span><span>
<span class="hljs-comment">/**
* Titel: Wie man effizient benutztPHPvonarray_multisort()Funktionen sortieren mehrdimensionale Arrays?
*
* Bei der Arbeit mit mehrdimensionalen Arrays,Entwickler müssen häufig Daten basierend auf einem oder mehreren Feldern sortieren.。
* PHP内置von array_multisort() 函数提供了eins种高效von方式来erreichen这eins点。
* Es sortiert nicht nur ein einzelnes Array,Es kann auch mehrere Arrays oder mehrdimensionale Arrays gleichzeitig sortieren。
*
* eins、array_multisort() von基本语法
* array_multisort(array &$array1, array $array2 = [], array $... = [], int $sorting_order = SORT_ASC, int $sorting_flags = SORT_REGULAR): bool
*
* - &$array1:Erforderliche Parameter,需要排序von第eins个数组。
* - $array2, ... :Optionale Parameter,Befestigen Sie ein Array,用于与第eins个数组保持对应关系。
* - $sorting_order:Sortieren Sie die Reihenfolge,Häufig verwendet SORT_ASC(Aufsteigende Ordnung)、SORT_DESC(absteigende Reihenfolge)。
* - $sorting_flags:Sortiertyp,wie SORT_REGULAR(Normaler Vergleich)、SORT_NUMERIC(Zahlenvergleich)、SORT_STRING(String -Vergleich)。
*
* zwei、在多维数组中von应用
* 当我们有eins个由多维数组组成von数据集(比wie数据库查询结果),Normalerweise nach einem bestimmten Schlüsselwert sortieren。
*
* Beispiel:
*/</span>
</span><span><span class="hljs-variable">$data</span></span><span> = [
[</span><span><span class="hljs-string">"id"</span></span><span> => </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"Alice"</span></span><span>, </span><span><span class="hljs-string">"score"</span></span><span> => </span><span><span class="hljs-number">85</span></span><span>],
[</span><span><span class="hljs-string">"id"</span></span><span> => </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"Bob"</span></span><span>, </span><span><span class="hljs-string">"score"</span></span><span> => </span><span><span class="hljs-number">92</span></span><span>],
[</span><span><span class="hljs-string">"id"</span></span><span> => </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> => </span><span><span class="hljs-string">"Cindy"</span></span><span>, </span><span><span class="hljs-string">"score"</span></span><span> => </span><span><span class="hljs-number">78</span></span><span>],
];
</span><span><span class="hljs-comment">// 提取需要排序von列</span></span><span>
</span><span><span class="hljs-variable">$ids</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_column</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>, </span><span><span class="hljs-string">"id"</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">$data</span></span><span>, </span><span><span class="hljs-string">"score"</span></span><span>);
</span><span><span class="hljs-comment">// 按成绩absteigende Reihenfolge,wie果成绩相同按idAufsteigende Ordnung</span></span><span>
</span><span><span class="hljs-title function_ invoke__">array_multisort</span></span><span>(</span><span><span class="hljs-variable">$scores</span></span><span>, SORT_DESC, </span><span><span class="hljs-variable">$ids</span></span><span>, SORT_ASC, </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 class="hljs-comment">/**
* Ausgangsergebnis:
* Array
* (
* [0] => Array
* (
* [id] => 1
* [name] => Bob
* [score] => 92
* )
*
* [1] => Array
* (
* [id] => 3
* [name] => Alice
* [score] => 85
* )
*
* [2] => Array
* (
* [id] => 2
* [name] => Cindy
* [score] => 78
* )
* )
*
* drei、Tipps und Vorsichtsmaßnahmen
* 1. verwenden array_column() Helferfunktionen können schnell Sortiersequenzen extrahieren,Schleifen vermeiden。
* 2. Mehrere Sortierungsbedingungen können gleichzeitig angegeben werden,例wie“Zuerst zu Note,Drücken Sie erneutID”。
* 3. array_multisort() 会改变原数组von索引,Wenn Sie den Index behalten müssen,Kann zuerst passieren uasort() erreichen。
* 4. Bei der Verarbeitung groß angelegter Daten,array_multisort() von性能要优于手工erreichen排序逻辑。
*
* Vier、Zusammenfassen
* array_multisort() 是处理多维数组排序von利器,特别适用于需要对结果集按照多个维度进行排序von场景。
* 掌握其用法能够显著提升代码von简洁度和执行效率。
*/</span>
</span></span>