လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> strnatcasecmp vs strioll: သောသဘာ 0 ပတ် 0 န်းကျင်မျိုးကွဲများအတွက်ပိုမိုသင့်တော်သည်။

strnatcasecmp vs strioll: သောသဘာ 0 ပတ် 0 န်းကျင်မျိုးကွဲများအတွက်ပိုမိုသင့်တော်သည်။

gitbox 2025-05-19

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

1 ။ နိဒါန်း

  • strnatcasecmp :

    • Strnatcasecmp သည် PHP တွင် function တစ်ခုဖြစ်ပြီးကြိုးနှစ်ချောင်းကို "သဘာဝ sort" နည်းလမ်းဖြင့်နှိုင်းယှဉ်ထားသည်။ "Naturat Sorting" ဟုခေါ်သောအဓိပ္ပာယ်ကိုဆိုလိုသည်မှာ string တစ်ခုရှိနံပါတ်များသည်စာလုံးများသာမကမဟုတ်ဘဲနံပါတ်များအဖြစ်မှတ်ယူလိမ့်မည်ဟုဆိုလိုသည်။ ၎င်း၏နှိုင်းယှဉ်ချက်နည်းလမ်းသည်ကိစ္စတွင်အမှုအားလျစ်လျူရှုခြင်းကိုလျစ်လျူရှုထားသဖြင့်အက်ခရာနှိုင်းယှဉ်မှုတွင်အသေးအဖွဲသည်ခွဲဝေမှုကိုမထိခိုက်ပါ။

    • သဒ္ဒါ:

       int strnatcasecmp ( string $str1 , string $str2 )
      
    • Value ကိုပြန်သွားပါ

      • အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်နည်းပါကအနုတ်လက်ခဏာနံပါတ်ကိုပြန်ပို့သည်။

      • $ str1 သည် $ str2 နှင့်ညီသည်ဆိုပါက 0 င်ပါ။

      • အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်ကြီးပါကအပြုသဘောဆောင်သောနံပါတ်ကိုပြန်ပို့သည်။

    • ဥပမာ -

       $str1 = "file10";
      $str2 = "file2";
      echo strnatcasecmp($str1, $str2);  // output ကိုအနုတ်နံပါတ်,အကေြာင်းမှာ "file10" သဘာဝအမိန့်အတွက်အဆင့်သတ်မှတ်ချက် "file2" ရေှ့
      
  • strioll :

    • StRCOLL သည် STRECARE SETTING အပေါ် အခြေခံ. ကြိုးနှစ်ချောင်းနှင့်နှိုင်းယှဉ်ထားသည်။ ၎င်းသည်ကြိုးနှင့်နှိုင်းယှဉ်ခြင်းအတွက်ဒေသဆိုင်ရာစည်းမျဉ်းများကိုအသုံးပြုသည်။ ထို့ကြောင့်ရလဒ်သည်ကွဲပြားခြားနားသောဒေသများပေါ် မူတည်. ကွဲပြားနိုင်သည်။ ဘာသာစကားနှင့်ယဉ်ကျေးမှုဆိုင်ရာကွဲပြားခြားနားမှုများကိုစဉ်းစားရန်လိုအပ်သည့်အခြေအနေများကိုစီစဉ်ရန်သင့်တော်သည်။

    • သဒ္ဒါ:

       int strcoll ( string $str1 , string $str2 )
      
    • Value ကိုပြန်သွားပါ

      • အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်နည်းပါကအနုတ်လက်ခဏာနံပါတ်ကိုပြန်ပို့သည်။

      • $ str1 သည် $ str2 နှင့်ညီသည်ဆိုပါက 0 င်ပါ။

      • အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်ကြီးပါကအပြုသဘောဆောင်သောနံပါတ်ကိုပြန်ပို့သည်။

    • ဥပမာ -

       setlocale(LC_COLLATE, 'en_US.UTF-8');  // area ရိယာတက် setting
      $str1 = "apple";
      $str2 = "banana";
      echo strcoll($str1, $str2);  // output ကိုအနုတ်နံပါတ်,အကေြာင်းမှာ "apple" အက္ခရာစဉ် "banana" ရေှ့
      

2 ။ strnatcasecmp နှင့် strioll အကြားနှိုင်းယှဉ်

  • အလိုက်စဥ်သည် :

    • Strnatcasecmp သည် "Natural Sorting" နည်းလမ်းကိုအသုံးပြုသည်။ နံပါတ်များကိုနံပါတ်များအဖြစ်သတ်မှတ်ခြင်း, စာလုံးအကြီးနှင့်အသေးများကိုလျစ်လျူရှုခြင်း,

    • StRCOLLELS သည် system ၏ locale settings ကို အခြေခံ. ကြိုးကြိုးများနှင့်နှိုင်းယှဉ်ထားသည်။

  • ကြည့်ရှုပါ

    • သငျသညျသဘာဝ sorting လုပ်ချင်တယ်ဆိုရင်, အထူးသဖြင့်ကြိုးများပါ 0 င်သည့်ကြိုးများကိုနှိုင်းယှဉ်လျှင် strnatcasecmp သည် ပို. သင့်လျော်သည်။ ဥပမာအားဖြင့်ဖိုင်အမည်များကိုသင်နှိုင်းယှဉ်လိုပါက "File1" နှင့် "File10" ကဲ့သို့သော "file1" နှင့် "file10" ကဲ့သို့သော strings များကိုသဘာဝအမိန့်တွင်ခွဲထားသင့်သည်။ ထို့နောက် strnatcasecmp သည်ပိုမိုကောင်းမွန်သောရွေးချယ်မှုဖြစ်သည်။

    • အထူးသဖြင့်ဘာသာစကားမျိုးစုံပါ 0 င်မှုများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ stcoll သည်ပိုမိုသင့်လျော်သော function များနှင့်ဆက်ဆံမှုကိုသတိပြုမိလျှင်, ဥပမာအားဖြင့် stcoll သည် သင်ကြိုးများ (ဥပမာ - အင်္ဂလိပ်သို့မဟုတ်ပြင်သစ်ကဲ့သို့သော) ကြိုးများကိုခွဲထားလိုသည့်အခါ ပို. ပြောင်းလွယ်ပြင်လွယ်ရှိသည်။

  • စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများ :

    • Strnatcasecmp သည် သဘာဝပတ်ဝန်းကျင်ကိုလုပ်ဆောင်သောအခါအနည်းငယ်နှေးကွေးနိုင်သည်။

    • လက်ရှိနေရာအသင်းအရ Striolls Sorts Sorts သည်ဒေသတွင်းရှိစွမ်းဆောင်ရည်သည်ဒေသအလိုက်ထိခိုက်စေနိုင်သည်, သို့သော်များသောအားဖြင့်၎င်းသည်ပိုမိုထိရောက်စေသည်။

3 ။ Code ဥပမာ: သဘာဝ sort vs ဒေသအမျိုးအစား

 // အသုံးပြု strnatcasecmp သဘာဝ sorting လုပ်ပါ
$file1 = "file10";
$file2 = "file2";
echo strnatcasecmp($file1, $file2);  // output ကိုအနုတ်နံပါတ်,file10 တည်နေ file2 ဉီးစွာ

// အသုံးပြု strcoll Sorting sorting settings ကို sorting
setlocale(LC_COLLATE, 'en_US.UTF-8');
echo strcoll("apple", "banana");  // output ကိုအနုတ်နံပါတ်,အကေြာင်းမှာ apple 排တည်နေ banana ရေှ့

4 ။ နိဂုံးချုပ်

ကြိုးကြိုးများ sorting လုပ်သည့်အခါ Strnatcasecmp သည် "သဘာဝအစဉ်အဆက်" တွင်ကြိုးများပါ 0 င်ပါက, ဒါဟာဂဏန်း sorting ၏လိုအပ်ချက်များကိုပိုမိုနားလည်နိုင်ပါတယ်။ အခြားတစ်ဖက်တွင်, strioll သည်သင်ဘာသာစကားဒေသများမှစီရန်လိုအပ်သည့်နေရာများအတွက်ပိုမိုသင့်တော်သည်။

ထို့ကြောင့်မည်သည့်လုပ်ဆောင်ချက်သည်သင်၏အမှန်တကယ်လိုအပ်ချက်များအပေါ်မူတည်သည်။ အကယ်. သင်သည်ဘာသာစကားလက်ဝါးကပ်တိုင် string sorting လုပ်လိုလျှင် stcoll သည် ပိုကောင်းလိမ့်မည်။ သငျသညျသဘာဝ sorting ကိုသာဂရုစိုက်ပါက Strnatcasecmp သည်အထူးသဖြင့်နံပါတ်များတွင်ပါ 0 င်သည့်အခါ,

ဆက်စပ်အကြောင်းအရာ