PHP ပရိုဂရမ်တွင် PHP ပရိုဂရမ်တွင်စာသားအမျိုးအစားသည်အထူးသဖြင့်အသုံးပြုသူ input များကိုထုတ်လုပ်ခြင်း, စာရင်းဖွင့်ခြင်း, ထုတ်ယူခြင်း, string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များစွာတွင် strnatcasecmp function ကို၎င်း၏သဘာဝ sorting feature အတွက်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ဒါကြောင့်စာသား sorting အတွက် strnatcasecmp ၏အားသာချက်များနှင့်အားနည်းချက်တွေဘာတွေလဲ? ၎င်းသည်အမျိုးအစားခွဲခြားမှုကိုမည်သို့အကျိုးသက်ရောက်သနည်း။ ဒီ function ကိုသုံးဖို့ဘယ်အခြေအနေမျိုးမှာအသင့်တော်ဆုံးလဲ။ အတူတူခွဲခြမ်းစိတ်ဖြာကြပါစို့။
strnatcasecmp function သည် PHP မှ "သဘာဝကျကျ sort" ကြိုးများဖြင့်ထောက်ပံ့ပေးသောနည်းလမ်းဖြစ်သည်။ StrcMP သို့မဟုတ် strivsecmp ကဲ့သို့သောရိုးရာ string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်မတူဘဲ Strnatcasecmp ကဲ့သို့သော strnatcasecmp ကို translcasecmp သည်စာသားအက္ခရာများနှင့်နှိုင်းယှဉ်ခြင်းထက်ကြိုးများဖြင့်ခွဲခြားထားသည်။ သဘာဝ sorting သည်အက္ခရာစဉ်အတိုင်းအက္ခရာစဉ်အတိုင်းထည့်သွင်းစဉ်းစားရုံသာမက strings ၏ကိန်းဂဏန်းများအရအမှန်တကယ်ကိန်းဂဏန်းတန်ဖိုးများအရ,
သဒ္ဒါ:
int strnatcasecmp ( string $string1 , string $string2 )
ဤလုပ်ဆောင်ချက်သည် ကြိုးကြိုး နှစ်ချောင်းနှင့် $ string2 ကို နှိုင်းယှဉ်ပြီးကိန်းဂဏန်းတစ်ခုပြန်ပို့သည်။ ပြန်လာ 0 င် string သည်တန်းတူဖြစ်ပါက $ string1 သည်ဒေါ်လာ string2 ထက်နည်းပါကဒေါ်လာ string2 ထက်နည်းပါက $ string1 သည်ဒေါ်လာ string2 ထက်နည်းသည် ။
ကိန်းဂဏန်း sorting ၏သဘောသဘာဝ
အထင်ရှားဆုံးသောအားသာချက်မှာ၎င်းသည်သဘာဝအားဖြင့်ခွဲခြားထားနိုင်သည်။ သင့်တွင်နံပါတ်များနှင့်အတူကြိုးများတပ်ဆင်ထားသည် (ဥပမာဖိုင်အမည်သို့မဟုတ်ဗားရှင်းနံပါတ်ကဲ့သို့သော), strnatcasecmp သည် strnatcasecmp သည် စာသားအက္ခရာများထက်နံပါတ်အရွယ်အစားဖြင့်ကြိုးများကိုစီနိုင်သည်။ ဥပမာအားဖြင့်:
$array = ['file10.txt', 'file2.txt', 'file1.txt'];
usort($array, 'strnatcasecmp');
print_r($array);
output ကိုဖြစ်လိမ့်မည်:
Array
(
[0] => file1.txt
[1] => file2.txt
[2] => file10.txt
)
သင်မြင်နိုင်သည့်အတိုင်း strnatcasecmp သည် pille10.txt ကို ပုံမှန် string နှိုင်းယှဉ်လုပ်ဆောင်မှုများနှင့်မတူဘဲ 2 နောက်ကွယ်မှ နံပါတ် 10 ကိုအဆင့်သတ်မှတ်မည်။
အမှုကိုလျစ်လျူရှုပါ
strnatcasecmp သည်စာလုံးအကြီးအသေး, အဓိပ္ပာယ်ကိုအလိုအလျောက်လျစ်လျူရှုထားပြီးစာလုံးအကြီးအသေးနှင့်စာလုံးအကြီးများနှင့်စာလုံးအကြီးများဖြင့်မထိခိုက်ပါ။ စာလုံးအကြီးနှင့်ရောနှောထားသောကြိုးများနှင့်ဆက်ဆံရာတွင်၎င်းသည်အလွန်အသုံးဝင်သည်။
ဥပမာအားဖြင့်:
$array = ['apple', 'Banana', 'orange', 'apple2'];
usort($array, 'strnatcasecmp');
print_r($array);
ရလဒ်ရလဒ် -
Array
(
[0] => apple
[1] => apple2
[2] => Banana
[3] => orange
)
နံပါတ်များနှင့်အတူ strings ကို processing အခါပိုပြီးအလိုလိုသိ
File Name နှင့် version နံပါတ်များကဲ့သို့သောနံပါတ်များနှင့်အတူကြိုးများနှင့်ဆက်ဆံသောအခါ strnatcasecmp လုပ်ဆောင်ချက်များ၏ sorting နည်းလမ်းသည်လူ့ပင်ကိုယ်နှင့်အညီပိုမိုကိုက်ညီသည်။ ဗားရှင်းနံပါတ်များနှင့်ရက်စွဲများစသည့်နံပါတ်များနှင့်အတူကြိုးများဖြင့် strnatcasecmp သည် သဘာဝ sorting အမိန့်ကိုပိုမိုကောင်းမွန်စေသည်။
စွမ်းဆောင်ရည်ပြ issues နာများ
ရိုးရှင်းသော stricmp နှင့် stricasecmp လုပ်ဆောင်ချက်များကိုနှိုင်းယှဉ်လျှင် strnatcasecmp သည်စွမ်းဆောင်ရည်နိမ့်သည်။ ၎င်းသည်နံပါတ်များကို string တစ်ခုတွင်ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်၎င်းတို့ကိုသဘာဝကျကျ sorting လုပ်ရန်လိုအပ်သည်အတွက်၎င်းသည်တွက်ချက်မှု၏ရှုပ်ထွေးမှုကိုတိုးပွားစေသည်။ ထို့ကြောင့်ကြိုးများအမြောက်အများကိုခွဲထုတ်သည့်အခါစွမ်းဆောင်ရည်မြှင့်တင်မှုများဖြစ်ပေါ်နိုင်သည်။ သင်၏လျှောက်လွှာဇာတ်လမ်းတွင်စွမ်းဆောင်ရည်မြင့်မားသောလိုအပ်ချက်များရှိပါကဤ function ကိုအသုံးပြုရန်သင့်အားစဉ်းစားရန်လိုကောင်းလိုပေမည်။
အားလုံးဇာတ်လမ်းများမှသက်ဆိုင်မဟုတ်ပါဘူး
အကယ်. သင်၏ string တွင်နံပါတ်များမပါ 0 င်ပါက "သဘာဝ sorting" မလိုအပ်ပါက strnatcasecmp ကို အသုံးပြုခြင်းသည်အလွန်အကျွံသုံးစွဲပုံရသည်။ ဤကိစ္စတွင် strcmp သို့မဟုတ် stricasecmp ကို အသုံးပြုခြင်းသည်ပိုမိုထိရောက်လိမ့်မည်။ ထို့အပြင် strnatcasecmp သည်ကြိုးကြိုးများနှင့်နှိုင်းယှဉ်ခြင်းနှင့်အခြားအမျိုးအစားများအတွက်သာသင့်လျော်သည်။
ဖိုင်အမည် sorting
strnatcasecmp သည်နံပါတ်များနှင့်အတူဖိုင်အမည်များနှင့်ဆက်ဆံရာတွင်အကောင်းဆုံးရွေးချယ်မှုဖြစ်သည်။ ဥပမာအားဖြင့်ဖိုင်အမည်တွင်ဗားရှင်းနံပါတ်, နေ့စွဲသို့မဟုတ်အခြားကိန်းဂဏန်းများပါ 0 င်ပြီးဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းသည်လူ့အလုပ်သဘောလွဲနှင့်ကိုက်ညီသည်ကိုသေချာစေသည်။
$files = ['file10.txt', 'file2.txt', 'file1.txt'];
usort($files, 'strnatcasecmp');
print_r($files);
ဗားရှင်းနံပါတ်အမျိုးအစား
ဗားရှင်းနံပါတ်များနှင့်နှိုင်းယှဉ်ခြင်းအတွက် strnatcasecmp သည် version နံပါတ်များကိုစာလုံးများဖြင့်အမိန့်ဖြင့်ခွဲခြားထားကြောင်းသေချာစေသည်။ ဥပမာအားဖြင့် 2.1 သည် 2.10 မတိုင်မီဖြစ်သင့်သည်။
$versions = ['1.1', '1.10', '1.2'];
usort($versions, 'strnatcasecmp');
print_r($versions);
နံပါတ်များနှင့်အတူစာသား sorting
နံပါတ်များပါ 0 င်သောမည်သည့်စာသားမဆို strnatcasecmp သည် "သဘာဝကျကျ sort" လုပ်ရန်လိုအပ်ပါက strnatcasecmp သည်အသုံးဝင်သည်။ ဥပမာအားဖြင့်အချို့သောအသုံးပြုသူထည့်သွင်းမှု, ဒေတာစာရင်းသို့မဟုတ်ထုတ်ကုန် sorting တွင်ဤလုပ်ဆောင်ချက်သည်ပိုမိုအလိုလိုသိသည့်အကျိုးသက်ရောက်မှုကိုပေးနိုင်သည်။
Strnatcasecmp သည် PHP တွင်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏သဘာဝ sorting ဝိသေသလက္ခဏာများကဖိုင်အမည်များနှင့်ဗားရှင်းနံပါတ်များကဲ့သို့သောဖြစ်ရပ်များတွင်အထူးသဖြင့်ကောင်းစွာလုပ်ဆောင်သည်။ သို့သော်၎င်းတွင်စွမ်းဆောင်ရည်နိမ့်ခြင်းကဲ့သို့သောအားနည်းချက်များရှိပြီးအမျိုးမျိုးသောအခြေအနေများအတွက်မသင့်တော်ပါ။ ထို့ကြောင့် strnatcasecmp ကို အသုံးပြုရန်ရှိမရှိရွေးချယ်ခြင်းသည်တိကျသောလိုအပ်ချက်များအပေါ် အခြေခံ. ဆုံးဖြတ်သင့်သည်။ ၎င်းသည်လူသားပင်ကိုယ်များကကိန်းဂဏန်းများခွဲခြားခြင်းနှင့်ပတ်သက်သည့်အခါအလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်ပွားသည်မှာသေချာသည်။