PHP တွင် strnatcasecmp () သည်အလွန်အသုံးဝင်သော string နှိုင်းယှဉ်ခြင်း function တစ်ခုဖြစ်သည်။ အထူးသဖြင့်ဗားရှင်းနံပါတ်များကဲ့သို့သောနံပါတ်များနှင့်နှိုင်းယှဉ်ပါ။ ဘုံ strcmp () သို့မဟုတ် stricasecmp (), strcasecmp () , strcasecmp (), strnatcasecmp () ကိုမတူဘဲနှိုင်းယှဉ်ခြင်းအတွက်သဘာဝ sorting နည်းလမ်းကိုအသုံးပြုသည်။ ၎င်းသည်အဘိဓာန်တွင်အဘိဓာန်ကိုထည့်သွင်းစဉ်းစားသည်။ ဗားရှင်းနံပါတ်များ, အထူးသဖြင့်ဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်သောအခါအထူးသဖြင့်ဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်သောအခါအလွန်အထောက်အကူပြုသည်။
ဒီဆောင်းပါးက strnatcasecmp () function ကိုဘယ်လိုသုံးရမလဲ, Version နံပါတ်များကိုပြောင်းရန်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ ကျွန်ုပ်တို့သည်ဗားရှင်းနံပါတ်ခင်းကျင်းမှုကိုမည်သို့ခွဲခွာရမည်,
strnatcasecmp () function ကို tword နှစ်ခုကိုနှိုင်းယှဉ်ရန်, လျစ်လျူရှုခြင်း, ဆိုလိုသည်မှာ၎င်းသည်၎င်းတို့ကိုအက္ခရာစဉ်နှိုင်းယှဉ်ရုံမျှသာမဟုတ်ဘဲကြိုးများရှိနံပါတ်များ၏အရွယ်အစားကိုထည့်သွင်းစဉ်းစားသည်။ ဤလုပ်ဆောင်မှုသည်အထူးသဖြင့်ဗားရှင်းနံပါတ်ကြိုးများကိုနှိုင်းယှဉ်ခြင်းအတွက်အထူးသဖြင့်သင့်တော်သည်, ဘာဖြစ်လို့လဲဆိုတော့ဗားရှင်းနံပါတ်သည် strcmp () သို့မဟုတ် strcasecmp () တွင်နံပါတ်များပါ 0 င်သည်။
int strnatcasecmp ( string $str1 , string $str2 )
$ str1 နှင့် $ str2 : နှိုင်းယှဉ်ခံရဖို့ကြိုးနှစ်ခု။
ပြန်လာတန်ဖိုး - ပြန်လာတန်ဖိုးသည်ကိန်းတစ်ခုဖြစ်သည်။ အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်နည်းလျှင်အနုတ်လက်ခဏာနံပါတ်ကိုပြန်ပို့သည်။ အကယ်. ဒေါ်လာ str1 သည် ဒေါ်လာ str2 ထက်ကြီးပါကအပြုသဘောဆောင်သောနံပါတ်ကိုပြန်ပို့သည်။ နှစ် ဦး စလုံးတန်းတူဖြစ်လျှင်, 0 ပြန်လာပြီ။
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
ပြောင်းပြန် 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 နံပါတ်များကိုပြောင်းလဲရန်ပြောင်းလဲခြင်းနည်းလမ်းဖြစ်သည်။