လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် STRNATCATCASCMP ၏ ferm in version နံပါတ်နှင့်နှိုင်းယှဉ်ပါက Version Native Sorting အောင်မြင်ရန်မည်သို့အသုံးပြုရမည်နည်း။

PHP တွင် STRNATCATCASCMP ၏ ferm in version နံပါတ်နှင့်နှိုင်းယှဉ်ပါက Version Native Sorting အောင်မြင်ရန်မည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-05-20

ပရိုဂရမ်များကိုရေးသားသည့်အခါဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်ရန်မကြာခဏလိုအပ်သည်။ ဥပမာအားဖြင့်, ဗားရှင်းနံပါတ်နှစ်ခု၏အမိန့်ကိုနှိုင်းယှဉ်ပါသို့မဟုတ်ပြသသည့်အခါဗားရှင်းနံပါတ်များ၏သဘာဝအမိန့်တွင်သူတို့ကိုစီစဉ်ပါ။ ကျွန်ုပ်တို့သည်ရိုးရာ string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များ strcmp () သို့မဟုတ် stricasecmp () သို့မဟုတ် stricasecmp () ကိုသုံးရန်ဗားရှင်းအရေအတွက်နှိုင်းယှဉ်မှုကိုသုံးရန်အသုံးပြုနိုင်သော်လည်း "Natural Sorting" စည်းမျဉ်းကိုထည့်သွင်းစဉ်းစားသည် - ၎င်းသည်ကိန်းဂဏန်းအရွယ်အစားနှင့်နှိုင်းယှဉ်ခြင်းဖြစ်သည်။

ကံကောင်းထောက်မစွာပင် PHP သည်အလွန်လက်တွေ့ကျသော function strnatcasecmp () ကိုထောက်ပံ့ပေးသည်။ ၎င်းသည်ဂဏန်းနံပါတ်နှစ်မျိုးရှိသဘာဝအတိုင်းပေါင်းစည်းမှုနည်းနှစ်မျိုးဖြင့်နှိုင်းယှဉ်ထားနိုင်သည့်အလွန်လက်တွေ့ကျသော function strnatcasecmp () ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးသည်ဗားရှင်းနံပါတ်နှိုင်းယှဉ်မှုကိုလုပ်ဆောင်ရန်နှင့်သဘာဝ sorting ကိုလုပ်ဆောင်ရန် Strnatcasecmp () function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

သဘာဝကဘာလဲ?

ရိုးရာ string နှိုင်းယှဉ်ချက်များတွင်နံပါတ်များကိုစာသားအတိုင်းစာသားအတိုင်းနှိုင်းယှဉ်ထားသည်။ ဥပမာအားဖြင့်:

 strcmp('10', '2'); // ပြန်လာတန်ဖိုးထက်သာ။ ကြီးမြတ်သည်0

အထက်ပါနှိုင်းယှဉ်ချက်တွင် '10' သည် '2' ထက် '2' ကို သာ. ကြီးသည်။

သဘာဝ sorting ၏ရည်မှန်းချက်မှာနံပါတ်များကိုကြိုးတန်ဖိုးများထက် "numerical values" အဖြစ်နှိုင်းယှဉ်ခြင်းဖြစ်သည်။ ထို့ကြောင့် '10' ကို '2' ပြီးနောက်အဆင့်သတ်မှတ်သင့်သည်။

strnatcasecmm function ကိုမိတ်ဆက်

Strnatcasecmp () သည် PHP မှပေးသော function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်အခြေအနေများနှင့်နှိုင်းယှဉ်ခြင်းကဲ့သို့သောကိန်းဂဏန်းများကိုခွဲခြားရန်လိုအပ်သည့်အခြေအနေတွင်အသုံးပြုသည်။

function ရှေ့ပြေးပုံစံ

 int strnatcasecmp ( string $string1 , string $string2 )
  • Parametermer

    • $ string1 : $ string2 နှင့်နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံး string ကို။

    • $ string2 : $ string1 နှင့်နှိုင်းယှဉ်ခံရဖို့ဒုတိယ string ကို။

  • Value ကိုပြန်သွားပါ

    • အကယ်. $ string1 သည် ဒေါ်လာတစ်လျှောက် နည်းပါကအနှုတ်တန်ဖိုးကိုပြန်ပို့သည်။

    • အကယ်. $ string1 သည် $ string2 နှင့်ညီသည်ဆိုပါစို့။

    • အကယ်. $ string1 သည် $ string2 ထက်ကြီးပါကအပြုသဘောဆောင်သောတန်ဖိုးကိုပြန်လည်ရရှိခဲ့သည်။

ဗားရှင်းနံပါတ်နှိုင်းယှဉ်မှုအတွက် strnatcasecmp ကိုသုံးပါ

ကျွန်ုပ်တို့တွင်ဗားရှင်းနံပါတ် 2 ဗားရှင်းနံပါတ် 2 ဗားရှင်းနှစ်ခုရှိသည်ဆိုပါစို့ 1.2.10 နှင့် 1.2.2 ရှိသည်ဆိုပါစို့။ 4 င်းတို့၏အရွယ်အစားကိုနှိုင်းယှဉ်ချင်ကြပြီး 1.2.10 မတိုင်မီ 1.2.2 ဖြစ်သင့်သည်ဆိုပါစို့။ ကျနော်တို့ strnatcasecmp () function ကိုအသုံးပြု။ လုပ်နိုင်ပါတယ်။

နမူနာကုဒ်:

 <?php
$version1 = '1.2.10';
$version2 = '1.2.2';

if (strnatcasecmp($version1, $version2) < 0) {
    echo "$version1 is less than $version2\n";
} elseif (strnatcasecmp($version1, $version2) > 0) {
    echo "$version1 is greater than $version2\n";
} else {
    echo "$version1 is equal to $version2\n";
}
?>

ထုတ်လုပ်မှု -

 1.2.10 is greater than 1.2.2

ဒီဥပမာမှာ strnatcasecmp () မှာ 1.2.10 က 1.2.10 က 1.2.2 ထက်ကြီးတယ်လို့တရားစီရင်တယ်။

application ကိုသဘာဝ sorting ၏ဖြစ်နိုင်ခြေ

ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ချက်အပြင် strnatcasecmp () သည် သဘာဝ sorting လိုအပ်သောအခြားအခြေအနေများတွင်အသုံးဝင်သည်။ ဥပမာအားဖြင့်:

  • ဖိုင်အမည်ရှိဗားရှင်းနံပါတ်ကိုစီပါ။

  • download စာရင်းကိုပြသသောအခါ packages များကိုဗားရှင်းနံပါတ်ဖြင့်စီစဉ်ပါ။

  • နံပါတ်များနှင့်အက္ခရာများဖြင့်ကြိုးများကိုစီပါ။

ဥပမာ - ဗားရှင်းနံပါတ်စာရင်းကို sort ပါ

ကျွန်ုပ်တို့တွင်ဗားရှင်းနံပါတ်များစာရင်းရှိသည်ဆိုပါစို့။ သင်ကအကောင်အထည်ဖော်ရန် strnatcasecmp () နှင့်ပေါင်းစပ်ထားသော USort () function ကိုသုံးနိုင်သည်။

 <?php
$versions = ['1.2.10', '1.2.2', '1.1.1', '1.10.0', '1.2.9'];

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

print_r($versions);
?>

ထုတ်လုပ်မှု -

 Array
(
    [0] => 1.1.1
    [1] => 1.2.2
    [2] => 1.2.9
    [3] => 1.2.10
    [4] => 1.10.0
)

အပေါ်ကပြထားတဲ့အတိုင်း airort () function ကို version နံပါတ်များကိုသဘာဝ sorting စည်းမျဉ်းစည်းကမ်းတွေနဲ့အညီ,

အကျဉ်းချုပ်

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


ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ခြင်းနှင့်သဘာဝ sorting အောင်မြင်ရန် PHP ရှိ Strnatcasecmp () function ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အသုံးပြုပါ။

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