လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ array_multisort () function ကိုမည်သို့ထိရောက်စွာအသုံးပြုရမည်နည်း။

PHP ၏ array_multisort () function ကိုမည်သို့ထိရောက်စွာအသုံးပြုရမည်နည်း။

gitbox 2025-09-08
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// ဤဆောင်းပါး၏အစသည်ကုဒ်နှင့်မသက်ဆိုင်ပါ</span></span><span>
</span><span><span class="hljs-comment">// စာရေးသူ: ChatGPT</span></span><span>
</span><span><span class="hljs-comment">// နေ့စဲှ: 2025-08-23</span></span><span>

</span><span><span class="hljs-comment">// ---------------------- စာသား divider ----------------------</span></span><span>

<span class="hljs-comment">/**
 * ဘဲှ့: ထိရောက်စွာအသုံးပြုနည်းPHP၏array_multisort()လုပ်ဆောင်ချက်များကို multidimensional arrays sort?
 *
 * multi- ရှုထောင် array နှင့်အတူအလုပ်လုပ်တဲ့အခါ,developer များမကြာခဏဆိုသလိုလယ်ကွင်းတစ်ခုသို့မဟုတ်တစ်ခုထက်ပိုသောအချက်အလက်များကို အခြေခံ. ဒေတာများကိုစီရန်လိုအပ်သည်။。
 * PHP内置၏ array_multisort() 函数提供了တစ်种高效၏方式来ပြီးမေြာက်စေ这တစ်点。
 * ဒါဟာတစ်ခုတည်း array မျိုးသာစီ,၎င်းသည် array တစ်ခုသို့မဟုတ် multi-dialogal array များကိုတစ်ပြိုင်တည်းဖြစ်စေနိုင်သည်。
 *
 * တစ်、array_multisort() ၏基本语法
 * array_multisort(array &amp;$array1, array $array2 = [], array $... = [], int $sorting_order = SORT_ASC, int $sorting_flags = SORT_REGULAR): bool
 *
 * - &amp;$array1:လိုအပ်သော parameters တွေကို,需要排序၏第တစ်个数组。
 * - $array2, ... :optional ကို parameters တွေကို,Array တစ်ခုပူးတွဲပါ,用于与第တစ်个数组保持对应关系。
 * - $sorting_order:အမိန့်,အများအားဖြင့်အသုံးပြုခဲ့သည် SORT_ASC(တက်နိုင်ရန်)、SORT_DESC(အမိန့်)。
 * - $sorting_flags:အမျိုးအစားအမျိုးအစား,ကဲ့သို့ SORT_REGULAR(ပုံမှန်နှိုင်းယှဉ်)、SORT_NUMERIC(အရေအတွက်နှိုင်းယှဉ်ခြင်း)、SORT_STRING(string နှိုင်းယှဉ်)。
 *
 * နှစ်、在多维数组中၏应用
 * 当我们有တစ်个由多维数组组成၏数据集(比ကဲ့သို့数据库查询结果),များသောအားဖြင့်အချို့သောသော့ချက်တန်ဖိုးဖြင့်စီပါ。
 *
 * နမူနာ:
 */</span>

</span><span><span class="hljs-variable">$data</span></span><span> = [
    [</span><span><span class="hljs-string">"id"</span></span><span> =&gt; </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> =&gt; </span><span><span class="hljs-string">"Alice"</span></span><span>, </span><span><span class="hljs-string">"score"</span></span><span> =&gt; </span><span><span class="hljs-number">85</span></span><span>],
    [</span><span><span class="hljs-string">"id"</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> =&gt; </span><span><span class="hljs-string">"Bob"</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">"id"</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-string">"name"</span></span><span> =&gt; </span><span><span class="hljs-string">"Cindy"</span></span><span>, </span><span><span class="hljs-string">"score"</span></span><span> =&gt; </span><span><span class="hljs-number">78</span></span><span>],
];

</span><span><span class="hljs-comment">// 提取需要排序၏列</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">// 按成绩အမိန့်,ကဲ့သို့果成绩相同按idတက်နိုင်ရန်</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">/**
 * ရလဒ်ရလဒ်:
 * Array
 * (
 *     [0] =&gt; Array
 *         (
 *             [id] =&gt; 1
 *             [name] =&gt; Bob
 *             [score] =&gt; 92
 *         )
 *
 *     [1] =&gt; Array
 *         (
 *             [id] =&gt; 3
 *             [name] =&gt; Alice
 *             [score] =&gt; 85
 *         )
 *
 *     [2] =&gt; Array
 *         (
 *             [id] =&gt; 2
 *             [name] =&gt; Cindy
 *             [score] =&gt; 78
 *         )
 * )
 *
 * သုံး、သိကောင်းစရာများနှင့်ကြိုတင်ကာကွယ်မှုများ
 * 1. အသုံးပြု array_column() အထောက်အကူပြုလုပ်ငန်းများသည်လျင်မြန်စွာ sorting sorting များကိုထုတ်ယူနိုင်သည်,ကွင်းကိုရှောင်ကြဉ်ပါ。
 * 2. မျိုးစုံ sorting အခြေအနေများကိုတစ်ချိန်တည်းမှာသတ်မှတ်နိုင်ပါတယ်,例ကဲ့သို့“ပထမတန်း,ထပ်နှိပ်ပါID”。
 * 3. array_multisort() 会改变原数组၏索引,သင်အညွှန်းကိန်းကိုဆက်လက်ထိန်းသိမ်းရန်လိုအပ်ပါက,ပထမ ဦး ဆုံး pass နိုင်ပါတယ် uasort() ပြီးမေြာက်စေ。
 * 4. ကြီးမားသောဒေတာကို processing အခါ,array_multisort() ၏性能要优于手工ပြီးမေြာက်စေ排序逻辑。
 *
 * လေး、အကျဉ်းချုပ်
 * array_multisort() 是处理多维数组排序၏利器,特别适用于需要对结果集按照多个维度进行排序၏场景。
 * 掌握其用法能够显著提升代码၏简洁度和执行效率。
 */</span>
</span></span>