PHP တွင် Natsort function သည်အများအားဖြင့်အသုံးပြုသော sorting method တစ်ခုဖြစ်သည်။ ဤအစီအစဉ်သည်လူတို့၏စာဖတ်ခြင်းအလေ့အထများနှင့်ပိုမိုများပြားလာနိုင်သည်။ Natsort နှင့်အတူခွဲနေသည့်အခါ, သင်သည်ပြ a နာတစ်ခုနှင့်ကြုံတွေ့ရနိုင်သည် - ၎င်းသည်ခင်းကျင်းမှု၏အဓိကတန်ဖိုးကိုပြန်လည်သတ်မှတ်ပြီးမူရင်းသော့ချက်တန်ဖိုးကိုပျောက်ဆုံးစေနိုင်သည်။ ၎င်းသည်နောက်ဆက်တွဲစစ်ဆင်ရေးများတွင်မူလသော့ချက်အပေါ် အခြေခံ. အချက်အလက်များကိုရယူရန်ခက်ခဲစေနိုင်သည်။
ဒီဆောင်းပါးမှာ Natsort ကို array တစ်ခုရဲ့အဓိကတန်ဖိုးကိုပြောင်းလဲခြင်းကိုဘယ်လိုရှောင်ရှားရမယ်ဆိုတာဆွေးနွေးပါလိမ့်မယ်။
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>] => a1
[</span><span><span class="hljs-number">1</span></span><span>] => a2
[</span><span><span class="hljs-number">0</span></span><span>] => a10
[</span><span><span class="hljs-number">3</span></span><span>] => a20
)
</span></span>သင်မြင်နိုင်သည်အတိုင်း Natsort သည် နံပါတ်များ၏အရွယ်အစားဖြင့်ခင်းကျင်းမှုကိုစီရန်လိုအပ်သည်, သို့သော်၎င်းသည်ခင်းကျင်းမှု၏အဓိကတန်ဖိုးကိုပြန်လည်သတ်မှတ်ထားသည်။
Natsort ကို သုံးသောအခါမူရင်းသော့ချက်တန်ဖိုးကိုသင်သိမ်းဆည်းလိုပါကမူရင်းခင်းကျင်းခြင်း၏သော့ချက်တန်ဖိုးကိုသိမ်းဆည်းရန်မအောင်မြင်မီ, ဤအချက်သည် sorting လုပ်ငန်းစဉ်သည်မူရင်းသော့ချက်တန်ဖိုးကိုမထိခိုက်စေနိုင်ကြောင်းသေချာစေသည်။
သင်ခင်းကျင်းမှု၏တန်ဖိုးများကိုထုတ်ယူခြင်းဖြင့်ခွဲထုတ်ခြင်းဖြင့်သော့ချက်တန်ဖိုးကိုမပြောင်းလဲပါ။ ၎င်းကို Array_values function မှတဆင့်အောင်မြင်သည်။ တိကျသောနည်းလမ်းမှာမူရင်းသော့ချက်တန်ဖိုးကို ဦး စွာသိမ်းထားရန်ဖြစ်သည်။
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> => </span><span><span class="hljs-string">'a10'</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-string">'a2'</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-string">'a1'</span></span><span>, </span><span><span class="hljs-string">'d'</span></span><span> => </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] => a1
[b] => a2
[c] => a10
[d] => a20
)
</span></span>ဤချဉ်းကပ်မှုတွင်မူရင်းသော့ချက်တန်ဖိုးကို array_keys ဖြင့်ပထမဆုံးရရှိပြီးနောက် array ကို Natsort ကို အသုံးပြုသည်။ Sorting ပြီးစီးပြီးနောက် key value နှင့် sorted value အကြားစာပေးစာယူကိုပြန်လည်ရယူရန် array_comboine ကို သုံးပါ။
နောက်နည်းတစ်နည်းမှာ 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> => </span><span><span class="hljs-string">'a10'</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> => </span><span><span class="hljs-string">'a2'</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> => </span><span><span class="hljs-string">'a1'</span></span><span>, </span><span><span class="hljs-string">'d'</span></span><span> => </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] => a1
[b] => a2
[a] => a10
[d] => a20
)
</span></span>Natsort သည်အစွမ်းထက်သော function တစ်ခုဖြစ်သော်လည်း၎င်းသည်ခင်းကျင်းမှု၏အဓိကတန်ဖိုးကိုပြန်လည်သတ်မှတ်ထားသည်။ အကယ်. သင်သည် sorting လုပ်ငန်းစဉ်အတွင်းအဓိကတန်ဖိုးများကိုထိန်းသိမ်းရန်လိုအပ်ပါကသင်သည်နည်းလမ်းနှစ်ခုအနက်မှတစ်ခုကိုသုံးနိုင်သည်။
မူရင်းသော့ချက်တန်ဖိုးကို ဦး စွာသိမ်းပါ, ပြီးနောက် sorting ပြီးနောက် array_combovine မှတဆင့်သော့ကိုပြန်ယူပါ။
သော့ချက်တန်ဖိုးဆုံးရှုံးမှုကိုရှောင်ရှားရန်စိတ်ကြိုက်အမျိုးအစားများအတွက် Uasort function ကိုသုံးပါ။
ဤနည်းလမ်းနှစ်မျိုးဖြင့်ဤနည်းလမ်းနှစ်မျိုးဖြင့်သင်ခင်းကျင်းမှုသည်သဘာဝအားဖြင့်ခွဲခြားထားသည့်အတွက်မပြောင်းလဲနိုင်အောင်သေချာစေရန်သေချာစေနိုင်သည်။