ပရိုဂရမ်များကိုရေးသားသည့်အခါဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်ရန်မကြာခဏလိုအပ်သည်။ ဥပမာအားဖြင့်, ဗားရှင်းနံပါတ်နှစ်ခု၏အမိန့်ကိုနှိုင်းယှဉ်ပါသို့မဟုတ်ပြသသည့်အခါဗားရှင်းနံပါတ်များ၏သဘာဝအမိန့်တွင်သူတို့ကိုစီစဉ်ပါ။ ကျွန်ုပ်တို့သည်ရိုးရာ 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' ပြီးနောက်အဆင့်သတ်မှတ်သင့်သည်။
Strnatcasecmp () သည် PHP မှပေးသော function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်အခြေအနေများနှင့်နှိုင်းယှဉ်ခြင်းကဲ့သို့သောကိန်းဂဏန်းများကိုခွဲခြားရန်လိုအပ်သည့်အခြေအနေတွင်အသုံးပြုသည်။
int strnatcasecmp ( string $string1 , string $string2 )
Parametermer
$ string1 : $ string2 နှင့်နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံး string ကို။
$ string2 : $ string1 နှင့်နှိုင်းယှဉ်ခံရဖို့ဒုတိယ string ကို။
Value ကိုပြန်သွားပါ
အကယ်. $ string1 သည် ဒေါ်လာတစ်လျှောက် နည်းပါကအနှုတ်တန်ဖိုးကိုပြန်ပို့သည်။
အကယ်. $ string1 သည် $ string2 နှင့်ညီသည်ဆိုပါစို့။
အကယ်. $ string1 သည် $ string2 ထက်ကြီးပါကအပြုသဘောဆောင်သောတန်ဖိုးကိုပြန်လည်ရရှိခဲ့သည်။
ကျွန်ုပ်တို့တွင်ဗားရှင်းနံပါတ် 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 ထက်ကြီးတယ်လို့တရားစီရင်တယ်။
ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ချက်အပြင် strnatcasecmp () သည် သဘာဝ sorting လိုအပ်သောအခြားအခြေအနေများတွင်အသုံးဝင်သည်။ ဥပမာအားဖြင့်:
ဖိုင်အမည်ရှိဗားရှင်းနံပါတ်ကိုစီပါ။
download စာရင်းကိုပြသသောအခါ packages များကိုဗားရှင်းနံပါတ်ဖြင့်စီစဉ်ပါ။
နံပါတ်များနှင့်အက္ခရာများဖြင့်ကြိုးများကိုစီပါ။
ကျွန်ုပ်တို့တွင်ဗားရှင်းနံပါတ်များစာရင်းရှိသည်ဆိုပါစို့။ သင်ကအကောင်အထည်ဖော်ရန် 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 ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အသုံးပြုပါ။