လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Strnatcasecmp နှင့်အတူကွဲပြားခြားနားသောစာလုံးများနှင့်အနိမ့်အမှုများနှင့်အတူအပြည်ပြည်ဆိုင်ရာကြိုးများနှင့်နှိုင်းယှဉ်ပုံ?

Strnatcasecmp နှင့်အတူကွဲပြားခြားနားသောစာလုံးများနှင့်အနိမ့်အမှုများနှင့်အတူအပြည်ပြည်ဆိုင်ရာကြိုးများနှင့်နှိုင်းယှဉ်ပုံ?

gitbox 2025-05-26

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် string နှိုင်းယှဉ်ချက်သည်အသုံးအများဆုံးလုပ်ငန်းတစ်ခုဖြစ်သည်။ အထူးသဖြင့်အသုံးပြုသူ input ကိုကိုင်တွယ်ဖြေရှင်းခြင်း, ဖိုင်အမည် sorting လုပ်ခြင်းသို့မဟုတ်ရှာဖွေခြင်းလုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါ, strnatcasecmp function သည်ဤသဘာဝအမိန့်အတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသောကိရိယာတစ်ခုဖြစ်သည်။

strnatcasecmp ဆိုတာဘာလဲ။

Strnatcasecmp သည် PHP မှကြိုးနှစ်ချောင်းကိုနှိုင်းယှဉ်ရန် PHP မှပါ 0 င်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏နှိုင်းယှဉ်ချက်နည်းလမ်းသည် "သဘာဝအစီအစဉ်" တွင်ရှိပြီးဖြစ်ရပ်မှန်အာရုံမခံစားနိုင်ပါ။ ဆိုလိုသည်မှာဥပမာအားဖြင့်ဤအစဉ်အမြဲနားလည်နိုင်သောအမိန့်တွင်၎င်းကိုနှိုင်းယှဉ်နိုင်သည်။

 echo strnatcasecmp("image1.jpg", "Image10.jpg");

အထက်ပါကုဒ်သည် image1.jpg ထက် Image10.jpg ထက်နည်းသောကြောင့်အနှုတ်လက်ခဏာနံပါတ်တစ်ခုကိုညွှန်ပြလိမ့်မည်။

အခြေခံ syntax:

 int strnatcasecmp(string $string1, string $string2)
  • ပြန်လာတန်ဖိုးမှာကိန်းတစ်ခုဖြစ်သည်။

    • <0 : string1 string2 ထက်လျော့နည်းသည်

    • = 0 : နှစ်ခု strings တန်းတူဖြစ်ကြသည်

    • > 0 : string1 string2 ထက်သာ။ ကြီးမြတ်သည်

strnatcasecmp သည် strnatcasecmp ထက် "သဘာဝအစီအစဉ်" အတွက်ဘာကြောင့်ပိုမိုသင့်တော်သနည်း။

strcasecmp သည် string အတွက်နံပါတ်များ၏အဓိပ္ပာယ်ကိုမခွဲခြားဘဲ strcasecmp သည်အက္ခရာများဖြင့်အက်ခရာဖြင့်အက္ခရာများဖြင့်အက်ခရာဖြင့်အက်ခရာဖြင့်အက်ခရာဖြင့်ဖော်ပြထားသည်။ Strnatcasecmp သည် "သဘာဝ sorting" ကိုအသုံးပြုသည်။ ဆိုလိုသည်မှာနံပါတ်များကိုတစ်ခုလုံးအဖြစ်သတ်မှတ်သည်။ ဥပမာအားဖြင့်:

 var_dump(strcasecmp("file2.txt", "file10.txt")); // ပြန်လာ > 0
var_dump(strnatcasecmp("file2.txt", "file10.txt")); // ပြန်လာ < 0

၎င်းသည် strnatcasecmp ကို file name, version နံပါတ်များစသည့်နံပါတ်များနှင့်နှိုင်းယှဉ်ခြင်းအတွက်အထူးသဖြင့်သင့်လျော်စေသည်။

အပြည်ပြည်ဆိုင်ရာကြိုးတွေကိုဘယ်လိုကိုင်တွယ်ရမလဲ။

strnatcasecmp သည် ASCII အက္ခရာများကိုမှန်ကန်စွာကိုင်တွယ်သော်လည်းအပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များနှင့်အပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များနှင့်ပတ်သက်သောအပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များနှင့်သက်ဆိုင်သောအပြည်ပြည်ဆိုင်ရာပံ့ပိုးမှုမရှိပါ။ ဆိုလိုသည်မှာအချို့သော Multibyte ဇာတ်ကောင်များအတွက်၎င်းသည်မျှော်လင့်ထားသည့်အတိုင်းမပြုမူနိုင်ပါ။

ဥပမာအားဖြင့်:

 echo strnatcasecmp("café", "CAFé");

ဤနှိုင်းယှဉ်ချက်သည် PHP ၏အခြေခံဇာတ်ကောင် encoding နှင့်ပြည်တွင်းအကောင်အထည်ဖော်မှုပေါ် မူတည်. ကြိုးနှစ်ချောင်းကိုမစဉ်းစားနိုင်ပါ။

အခြားရွေးချယ်စရာ - Intl တိုးချဲ့မှုနှင့်အတူ collath

အကယ်. သင်သည်အမှန်တကယ်နိုင်ငံတကာအပြည်ပြည်ဆိုင်ရာဘာသာစကားအထောက်အကူပြုသောအပြုအမူများကိုလိုအပ်ပါက PHP ၏ Intlt extension တွင် collator class ကိုသုံးနိုင်သည်။

 $collator = new Collator('fr_FR');
echo $collator->compare("café", "CAFé"); // ထုတ်လုပ်ခြင်း 0,တန်းတူညီမျှမှုဖော်ပြသည်

Collator သည် နိုင်ငံတကာဇာတ်ကောင်များကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်နိုင်သည့်ဘာသာစကားများနှင့်ဒေသခံများကိုထောက်ပံ့သည်။

လက်တွေ့ကျတဲ့ application များဖေါ်ပြခြင်း

အသုံးပြုသူများသည် 0 ဘ်ဆိုဒ်တစ်ခုတွင်တင်ထားသောဖိုင်အမည်များကို 0 ဘ ဆိုဒ်တစ်ခုတွင်ရွေးချယ်လိုကြောင်း, အသုံးပြုသူများသည်ဖိုင်အမည်များကိုအမှုများဖြင့်တင်ပို့နိုင်ပြီးနံပါတ်များလည်းရှိသည်ဟုယူမှတ်သည်ဆိုပါစို့။

 $files = ["image10.jpg", "Image2.jpg", "image1.JPG", "Image20.jpg"];

usort($files, function($a, $b) {
    return strnatcasecmp($a, $b);
});

foreach ($files as $file) {
    echo "<a href='https://gitbox.net/uploads/{$file}'>{$file}</a><br>";
}

output ရလဒ် -

 image1.JPG
Image2.jpg
image10.jpg
Image20.jpg

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

အကျဉ်းချုပ်

  • strnatcasecmp သည် strings များကို "သဘာဝအစီအစဉ်" တွင် "သဘာဝအမိန့်" တွင် "သဘာဝအမိန့်" တွင်နှိုင်းယှဉ်ခြင်းအတွက်အစွမ်းထက်။ လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။

  • အထူးသဖြင့်ဖိုင်များ, တံဆိပ်များ, တံဆိပ်များ, ဗားရှင်းနံပါတ်များစသည်တို့ကဲ့သို့သောကြိုးများနှင့်အတူကြိုးများနှင့်အတူသင့်တော်သည်။

  • အပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များပါ 0 ်သောနှိုင်းယှဉ်မှုများအတွက် strnatcasecmp သည် စံပြမဖြစ်နိုင်ပါ။

strnatcasecmp ၏အသုံးပြုမှုကိုကျွမ်းကျင်မှုသည်သင်အသုံးပြုသူ input ကိုပိုမိုလုပ်ဆောင်ရန်ကူညီနိုင်ပြီးယုတ္တိဗေဒကိုပိုမိုသဘာဝကျကျပြုလုပ်ခြင်းကိုပိုမိုသဘာဝကျကျပြုလုပ်ခြင်းကိုကူညီနိုင်ပြီးသင်၏ PHP applications များကိုပိုမိုစမတ်ကျပြီးအသုံး 0 င်သည်။