လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Natsort function ကိုဘယ်လိုကာကွယ်နိုင်မလဲဆိုတာကို Natsort function ကိုဘယ်လိုကာကွယ်မလဲ။

Natsort function ကိုဘယ်လိုကာကွယ်နိုင်မလဲဆိုတာကို Natsort function ကိုဘယ်လိုကာကွယ်မလဲ။

gitbox 2025-08-30

PHP တွင် Natsort function သည်အများအားဖြင့်အသုံးပြုသော sorting method တစ်ခုဖြစ်သည်။ ဤအစီအစဉ်သည်လူတို့၏စာဖတ်ခြင်းအလေ့အထများနှင့်ပိုမိုများပြားလာနိုင်သည်။ Natsort နှင့်အတူခွဲနေသည့်အခါ, သင်သည်ပြ a နာတစ်ခုနှင့်ကြုံတွေ့ရနိုင်သည် - ၎င်းသည်ခင်းကျင်းမှု၏အဓိကတန်ဖိုးကိုပြန်လည်သတ်မှတ်ပြီးမူရင်းသော့ချက်တန်ဖိုးကိုပျောက်ဆုံးစေနိုင်သည်။ ၎င်းသည်နောက်ဆက်တွဲစစ်ဆင်ရေးများတွင်မူလသော့ချက်အပေါ် အခြေခံ. အချက်အလက်များကိုရယူရန်ခက်ခဲစေနိုင်သည်။

ဒီဆောင်းပါးမှာ Natsort ကို array တစ်ခုရဲ့အဓိကတန်ဖိုးကိုပြောင်းလဲခြင်းကိုဘယ်လိုရှောင်ရှားရမယ်ဆိုတာဆွေးနွေးပါလိမ့်မယ်။

Natsort နှင့်၎င်း၏သက်ရောက်မှု

Natsort function ၏ function သည် "သဘာဝအစီအစဉ်" ကို အခြေခံ. Arrays များကိုစီရန်ဖြစ်သည်။ သဘာ 0 ပတ် 0 န်းကျင်ဆိုင်ရာအစဉ်လိုက်ခြင်းသည်၎င်းတို့အား sorting လုပ်ခြင်းထက်နံပါတ်များကိုခွဲထုတ်ခြင်းထက်နံပါတ်များကိုခွဲခြားရန်ရည်ညွှန်းသည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">'a10'</span></span><span>, </span><span><span class="hljs-string">'a2'</span></span><span>, </span><span><span class="hljs-string">'a1'</span></span><span>, </span><span><span class="hljs-string">'a20'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span></span>

အထက်ပါကုဒ်ကိုအကောင်အထည်ဖော်ပြီးနောက်, output ရလဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; a1
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; a2
    [</span><span><span class="hljs-number">0</span></span><span>] =&gt; a10
    [</span><span><span class="hljs-number">3</span></span><span>] =&gt; a20
)
</span></span>

သင်မြင်နိုင်သည်အတိုင်း Natsort သည် နံပါတ်များ၏အရွယ်အစားဖြင့်ခင်းကျင်းမှုကိုစီရန်လိုအပ်သည်, သို့သော်၎င်းသည်ခင်းကျင်းမှု၏အဓိကတန်ဖိုးကိုပြန်လည်သတ်မှတ်ထားသည်။

အဓိကတန်ဖိုးဆုံးရှုံးမှုကိုကာကွယ်နည်း

Natsort ကို သုံးသောအခါမူရင်းသော့ချက်တန်ဖိုးကိုသင်သိမ်းဆည်းလိုပါကမူရင်းခင်းကျင်းခြင်း၏သော့ချက်တန်ဖိုးကိုသိမ်းဆည်းရန်မအောင်မြင်မီ, ဤအချက်သည် sorting လုပ်ငန်းစဉ်သည်မူရင်းသော့ချက်တန်ဖိုးကိုမထိခိုက်စေနိုင်ကြောင်းသေချာစေသည်။

နည်းလမ်း 1: array_values ​​နှင့် natsort ကို သုံးပါ

သင်ခင်းကျင်းမှု၏တန်ဖိုးများကိုထုတ်ယူခြင်းဖြင့်ခွဲထုတ်ခြင်းဖြင့်သော့ချက်တန်ဖိုးကိုမပြောင်းလဲပါ။ ၎င်းကို Array_values ​​function မှတဆင့်အောင်မြင်သည်။ တိကျသောနည်းလမ်းမှာမူရင်းသော့ချက်တန်ဖိုးကို ဦး စွာသိမ်းထားရန်ဖြစ်သည်။

 <span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-string">'a10'</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-string">'a2'</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </span><span><span class="hljs-string">'a1'</span></span><span>, </span><span><span class="hljs-string">'d'</span></span><span> =&gt; </span><span><span class="hljs-string">'a20'</span></span><span>];

</span><span><span class="hljs-comment">// မူရင်းသော့ချက်တန်ဖိုးကိုသိမ်းဆည်းပါ</span></span><span>
</span><span><span class="hljs-variable">$original_keys</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);

</span><span><span class="hljs-comment">// သဘာဝတန်ဖိုးများကို sort</span></span><span>
</span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);

</span><span><span class="hljs-comment">// မူရင်းသော့ချက်တန်ဖိုးကိုပြန်ယူပါ</span></span><span>
</span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_combine</span></span><span>(</span><span><span class="hljs-variable">$original_keys</span></span><span>, </span><span><span class="hljs-variable">$array</span></span><span>);

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

ရလဒ်ရလဒ် -

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [a] =&gt; a1
    [b] =&gt; a2
    [c] =&gt; a10
    [d] =&gt; a20
)
</span></span>

ဤချဉ်းကပ်မှုတွင်မူရင်းသော့ချက်တန်ဖိုးကို array_keys ဖြင့်ပထမဆုံးရရှိပြီးနောက် array ကို Natsort ကို အသုံးပြုသည်။ Sorting ပြီးစီးပြီးနောက် key value နှင့် sorted value အကြားစာပေးစာယူကိုပြန်လည်ရယူရန် array_comboine ကို သုံးပါ။

နည်းလမ်း 2 - Sorting ကိုစိတ်ကြိုက်ပြင်ဆင်ရန် USARS ကို သုံးပါ

နောက်နည်းတစ်နည်းမှာ uasort function ကိုအသုံးပြုရန်ဖြစ်သည်။ Natsort နှင့်ဆင်တူသည် စိတ်ကြိုက် sorting function ကိုအကောင်အထည်ဖော်ခြင်းအားဖြင့်မူရင်းသော့ချက်တန်ဖိုးကိုထိန်းသိမ်းထားစဉ် sorting နည်းလမ်းကိုသင်ထိန်းချုပ်နိုင်သည်။

 <span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-string">'a10'</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-string">'a2'</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </span><span><span class="hljs-string">'a1'</span></span><span>, </span><span><span class="hljs-string">'d'</span></span><span> =&gt; </span><span><span class="hljs-string">'a20'</span></span><span>];

</span><span><span class="hljs-title function_ invoke__">uasort</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, function(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>);
});

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

Uasort သည် strnatcmp function ကို အသုံးပြု. callback function ကို အသုံးပြု. strnatcmp function ကိုအသုံးပြုသည်။

ရလဒ်ရလဒ် -

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [c] =&gt; a1
    [b] =&gt; a2
    [a] =&gt; a10
    [d] =&gt; a20
)
</span></span>

အကျဉ်းချုပ်

Natsort သည်အစွမ်းထက်သော function တစ်ခုဖြစ်သော်လည်း၎င်းသည်ခင်းကျင်းမှု၏အဓိကတန်ဖိုးကိုပြန်လည်သတ်မှတ်ထားသည်။ အကယ်. သင်သည် sorting လုပ်ငန်းစဉ်အတွင်းအဓိကတန်ဖိုးများကိုထိန်းသိမ်းရန်လိုအပ်ပါကသင်သည်နည်းလမ်းနှစ်ခုအနက်မှတစ်ခုကိုသုံးနိုင်သည်။

  1. မူရင်းသော့ချက်တန်ဖိုးကို ဦး စွာသိမ်းပါ, ပြီးနောက် sorting ပြီးနောက် array_combovine မှတဆင့်သော့ကိုပြန်ယူပါ။

  2. သော့ချက်တန်ဖိုးဆုံးရှုံးမှုကိုရှောင်ရှားရန်စိတ်ကြိုက်အမျိုးအစားများအတွက် Uasort function ကိုသုံးပါ။

ဤနည်းလမ်းနှစ်မျိုးဖြင့်ဤနည်းလမ်းနှစ်မျိုးဖြင့်သင်ခင်းကျင်းမှုသည်သဘာဝအားဖြင့်ခွဲခြားထားသည့်အတွက်မပြောင်းလဲနိုင်အောင်သေချာစေရန်သေချာစေနိုင်သည်။