<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Le début de cet article n'est pas lié au code</span></span><span>
</span><span><span class="hljs-comment">// auteur: ChatGPT</span></span><span>
</span><span><span class="hljs-comment">// date: 2025-08-23</span></span><span>
</span><span><span class="hljs-comment">// ---------------------- Diviseur de texte ----------------------</span></span><span>
<span class="hljs-comment">/**
* titre: Comment utiliser efficacementPHPdearray_multisort()Fonctions trie les tableaux multidimensionnels?
*
* Lorsque vous travaillez avec des tableaux multidimensionnels,Les développeurs doivent souvent trier les données en fonction d'un ou plusieurs champs.。
* PHP内置de array_multisort() 函数提供了un种高效de方式来accomplir这un点。
* Il ne fait pas seulement un seul tableau,Il peut également trier plusieurs tableaux ou tableaux multidimensionnels simultanément。
*
* un、array_multisort() de基本语法
* array_multisort(array &$array1, array $array2 = [], array $... = [], int $sorting_order = SORT_ASC, int $sorting_flags = SORT_REGULAR): bool
*
* - &$array1:Paramètres requis,需要排序de第un个数组。
* - $array2, ... :Paramètres facultatifs,Attacher un tableau,用于与第un个数组保持对应关系。
* - $sorting_order:Tri,Couramment utilisé SORT_ASC(Commande ascendante)、SORT_DESC(Ordre descendant)。
* - $sorting_flags:Type de tri,comme SORT_REGULAR(Comparaison normale)、SORT_NUMERIC(Comparaison des nombres)、SORT_STRING(Comparaison des cordes)。
*
* deux、在多维数组中de应用
* 当我们有un个由多维数组组成de数据集(比comme数据库查询结果),Habituellement, triez par une certaine valeur clé。
*
* Exemple:
*/</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">// 提取需要排序de列</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">// 按成绩Ordre descendant,comme果成绩相同按idCommande ascendante</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">/**
* Résultat de sortie:
* 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
* )
* )
*
* trois、Conseils et précautions
* 1. utiliser array_column() Les fonctions d'assistance peuvent rapidement extraire les séquences de tri,Évitez les boucles。
* 2. Plusieurs conditions de tri peuvent être spécifiées en même temps,例comme“Par grade d'abord,Appuyer surID”。
* 3. array_multisort() 会改变原数组de索引,Si vous devez conserver l'index,Peut passer d'abord uasort() accomplir。
* 4. Lors du traitement des données à grande échelle,array_multisort() de性能要优于手工accomplir排序逻辑。
*
* Quatre、Résumer
* array_multisort() 是处理多维数组排序de利器,特别适用于需要对结果集按照多个维度进行排序de场景。
* 掌握其用法能够显著提升代码de简洁度和执行效率。
*/</span>
</span></span>