လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ရှိဗားရှင်းနံပါတ်များကိုရှေ့သို့နှင့်ပြောင်းပြန် sorting များအတွက် strnatcasecmp ကိုအသုံးပြုနည်း။

PHP ရှိဗားရှင်းနံပါတ်များကိုရှေ့သို့နှင့်ပြောင်းပြန် sorting များအတွက် strnatcasecmp ကိုအသုံးပြုနည်း။

gitbox 2025-05-27

PHP တွင် strnatcasecmp () သည်အလွန်အသုံးဝင်သော string နှိုင်းယှဉ်ခြင်း function တစ်ခုဖြစ်သည်။ အထူးသဖြင့်ဗားရှင်းနံပါတ်များကဲ့သို့သောနံပါတ်များနှင့်နှိုင်းယှဉ်ပါ။ ဘုံ strcmp () သို့မဟုတ် stricasecmp (), strcasecmp () , strcasecmp (), strnatcasecmp () ကိုမတူဘဲနှိုင်းယှဉ်ခြင်းအတွက်သဘာဝ sorting နည်းလမ်းကိုအသုံးပြုသည်။ ၎င်းသည်အဘိဓာန်တွင်အဘိဓာန်ကိုထည့်သွင်းစဉ်းစားသည်။ ဗားရှင်းနံပါတ်များ, အထူးသဖြင့်ဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်သောအခါအထူးသဖြင့်ဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်သောအခါအလွန်အထောက်အကူပြုသည်။

ဒီဆောင်းပါးက strnatcasecmp () function ကိုဘယ်လိုသုံးရမလဲ, Version နံပါတ်များကိုပြောင်းရန်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ ကျွန်ုပ်တို့သည်ဗားရှင်းနံပါတ်ခင်းကျင်းမှုကိုမည်သို့ခွဲခွာရမည်,

strnatcasecmp () function ကဘာလဲ?

strnatcasecmp () function ကို tword နှစ်ခုကိုနှိုင်းယှဉ်ရန်, လျစ်လျူရှုခြင်း, ဆိုလိုသည်မှာ၎င်းသည်၎င်းတို့ကိုအက္ခရာစဉ်နှိုင်းယှဉ်ရုံမျှသာမဟုတ်ဘဲကြိုးများရှိနံပါတ်များ၏အရွယ်အစားကိုထည့်သွင်းစဉ်းစားသည်။ ဤလုပ်ဆောင်မှုသည်အထူးသဖြင့်ဗားရှင်းနံပါတ်ကြိုးများကိုနှိုင်းယှဉ်ခြင်းအတွက်အထူးသဖြင့်သင့်တော်သည်, ဘာဖြစ်လို့လဲဆိုတော့ဗားရှင်းနံပါတ်သည် strcmp () သို့မဟုတ် strcasecmp () တွင်နံပါတ်များပါ 0 င်သည်။

function ကိုလက်မှတ်:

 int strnatcasecmp ( string $str1 , string $str2 )
  • $ str1 နှင့် $ str2 : နှိုင်းယှဉ်ခံရဖို့ကြိုးနှစ်ခု။

  • ပြန်လာတန်ဖိုး - ပြန်လာတန်ဖိုးသည်ကိန်းတစ်ခုဖြစ်သည်။ အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်နည်းလျှင်အနုတ်လက်ခဏာနံပါတ်ကိုပြန်ပို့သည်။ အကယ်. ဒေါ်လာ str1 သည် ဒေါ်လာ str2 ထက်ကြီးပါကအပြုသဘောဆောင်သောနံပါတ်ကိုပြန်ပို့သည်။ နှစ် ဦး စလုံးတန်းတူဖြစ်လျှင်, 0 ပြန်လာပြီ။

Version နံပါတ်များကိုရှေ့သို့ sorting ကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

Forward Sorting ဆိုသည်မှာသေးငယ်သောဗားရှင်းသို့သေးငယ်သည့်နံပါတ်သို့ခွဲထုတ်ခြင်းဖြစ်သည်။ Strnatcasecmp နှင့်ပေါင်းစပ်ထားသော Usort () function မှတဆင့်ဗားရှင်းနံပါတ်များကိုဆက်လက်လေ့လာနိုင်ရန်ကျွန်ုပ်တို့အကောင်အထည်ဖော်နိုင်သည်။

နမူနာကုဒ်:

 <?php
// ဗားရှင်းနံပါတ်ခင်းကျင်း
$versions = [
    "1.10.2",
    "1.2.10",
    "1.2.1",
    "2.0.0",
    "1.9.9",
];

// အသုံးပြု strnatcasecmp ရှေ့သို့ sorting
usort($versions, function($a, $b) {
    return strnatcasecmp($a, $b);
});

// အဆိုပါ sorted ဗားရှင်းနံပါတ် output ကို
echo "ရှေ့သို့ vorted ဗားရှင်းနံပါတ်:\n";
foreach ($versions as $version) {
    echo $version . "\n";
}
?>

ဤကုဒ်တွင်ဗားရှင်းနံပါတ်ခင်းကျင်းမှုကိုကျွန်ုပ်တို့ သတ်မှတ်. USort () function ကို သုံး. ၎င်းကိုရွေးချယ်သည်။ Usort ၏ callback function () သည် strnatcasecmp () သည် strnatcasecmp () ကို အသုံးပြုသည်။

ရလဒ်ရလဒ် -

 ရှေ့သို့ vorted ဗားရှင်းနံပါတ်:
1.2.1
1.2.10
1.9.9
1.10.2
2.0.0

Reverse Version Number အမျိုးအစားခွဲခြားခြင်းများကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

ပြောင်းပြန် sorting ဆိုသည်မှာကြီးမားသောဗားရှင်းနံပါတ်သို့အကူးအပြောင်းကိုဆိုလိုသည်။ ၎င်းကိုရရှိရန်အတွက် strnatcasecmp () ၏ပြန်လည်နေရာချထားသည့်တန်ဖိုးကိုပြန်လည်နေရာချထားရန်လိုအပ်သည်။

နမူနာကုဒ်:

 <?php
// ဗားရှင်းနံပါတ်ခင်းကျင်း
$versions = [
    "1.10.2",
    "1.2.10",
    "1.2.1",
    "2.0.0",
    "1.9.9",
];

// အသုံးပြု strnatcasecmp ပြောင်းပြန် sorting
usort($versions, function($a, $b) {
    return strnatcasecmp($b, $a); // parameter အမိန့်ကို reverse
});

// အဆိုပါ sorted ဗားရှင်းနံပါတ် output ကို
echo "ပြောင်းပြန် sorted ဗားရှင်းနံပါတ်:\n";
foreach ($versions as $version) {
    echo $version . "\n";
}
?>

ပြောင်းပြန် sorting code တွင်ကျွန်ုပ်တို့သည် strnatcasecmp () function တွင် parameters တွေကိုလဲလှယ်ခြင်းဖြင့်ကြီးမားသောအနေဖြင့်သေးငယ်သောအမိန့်ကိုကျွန်ုပ်တို့ရရှိခဲ့သည်။ ဤနည်းအားဖြင့်ဗားရှင်းနံပါတ်ခင်းကျင်းမှုတွင်အများဆုံးတန်ဖိုးကို ဦး စွာအဆင့်သတ်မှတ်မည်။

ရလဒ်ရလဒ် -

 ပြောင်းပြန် sorted ဗားရှင်းနံပါတ်:
2.0.0
1.10.2
1.9.9
1.2.10
1.2.1

အကျဉ်းချုပ်

strnatcasecmp () function ကိုအသုံးပြုခြင်းသည်ဗားရှင်းနံပါတ်များကဲ့သို့သောနံပါတ်များပါ 0 င်သောကြိုးများကိုအလွန်အဆင်ပြေစွာပြုလုပ်နိုင်သည်။ Usort () function ကိုပေါင်းစပ်ခြင်းအားဖြင့်ဗားရှင်းနံပါတ်များကိုရှေ့သို့ဗားရှင်းအမျိုးအစားများကိုအောင်မြင်စွာခွဲထုတ်နိုင်ပြီးပြောင်းပြန် sorting အောင်မြင်နိုင်သည်။ သဘာဝ sorting သည်ရိုးရှင်းသောအက္ခရာစဉ်ထက်ဂဏန်းအရွယ်အစားများကိုနှိုင်းယှဉ်ခြင်းအားဖြင့် "1.10.2" နှင့် "1.2.10" ကဲ့သို့သောပြ problems နာများကိုရှောင်ရှားရန်သေချာစေသည်။

အထက်ဖော်ပြပါအချက်သည် PHP တွင် strnatcasecmp () function ကို အသုံးပြု. Version နံပါတ်များကိုပြောင်းလဲရန်ပြောင်းလဲခြင်းနည်းလမ်းဖြစ်သည်။