strnatcasecmp သည် PHP တွင်အလွန်လက်တွေ့ကျသော string နှိုင်းယှဉ်မှု function ဖြစ်သည်။ ၎င်းသည်သဘာဝမှာယူမှု algorithm ကိုအသုံးပြုသည်။ သဘာဝ sorting သည်အမိန့်အတွက်ကြိုးများကို sorting ရုံမျှသာမဟုတ်ပါ။ ၎င်းသည်နံပါတ်များ၏အရွယ်အစားကိုထည့်သွင်းစဉ်းစားပြီးလူ့အကောင်းဆုံးအလေ့အထများနှင့်အညီပိုမိုများပြားနိုင်သည်။ ယနေ့ကျွန်ုပ်တို့သည် stretcasecmp function ကိုမည်သို့အသုံးပြုရမည်ကိုဆွေးနွေးမည်။
strnatcasecmp function ကိုကြိုးနှစ်ချောင်း (အမှုအသေးအဖွဲ) သည်သဘာဝ sorting အမိန့်နှင့်အညီလိုက်လျောညီထွေဖြစ်အောင်နှိုင်းယှဉ်ကြည့်ရှုရန်အသုံးပြုသည်။
strings နှစ်ခုတန်းတူဖြစ်ကြောင်းဖော်ပြရန် 0 ပြန်လာ
ဆိုလိုတာကအနုတ်လက်ခဏာတန်ဖိုးကိုပြန်ပေးတယ်ဆိုတာဒုတိယ string ထက်သေးငယ်တယ်ဆိုတာကိုဆိုလိုတာ
ပထမ string ကိုဒုတိယ string ထက်ပိုကြီးတဲ့အပြုသဘောဆောင်တဲ့တန်ဖိုးကိုပြန်ပေးပါ
အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
int strnatcasecmp ( string $string1 , string $string2 )
လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်ကျွန်ုပ်တို့သည်ကြိုးပေါင်းများစွာကိုခွဲရန်လိုအပ်သည်။ PHP သည်သဘာဝ sorting ရရှိရန်အတွက် USort function နှင့် strnatcasecmp ကို ထောက်ပံ့ပေးသည်။ strnatcasecmp ကိုအသုံးပြုပြီးကြိုးပေါင်းစုံမျိုးစုံကိုဘယ်လိုခွဲခြားရမယ်ဆိုတာပြတဲ့ဥပမာတစ်ခုပါ။
<?php
// sorted ခံရဖို့ကြိုးများခင်းကျင်း
$array = array(
"img20.jpg",
"img3.jpg",
"img100.jpg",
"img12.jpg",
"img1.jpg"
);
// အသုံးပြု usort နှင့် strnatcasecmp Arrays sort
usort($array, 'strnatcasecmp');
// output ကို sorted ရလဒ်များ
foreach ($array as $file) {
echo $file . "<br>";
}
?>
အထက်ဖော်ပြပါကုဒ်များတွင်ဖိုင်အမည်များပါ 0 င်သော array $ array တစ်ခုသတ်မှတ်ထားသည်။ ဤဖိုင်အမည်များတွင်ကိန်းဂဏန်းအစိတ်အပိုင်းများပါ 0 င်ပြီး၎င်းသည်သဘာဝ sorting အောင်မြင်ရန် strnatcasecmp မှတစ်ဆင့်ဖြစ်သည်။ ထို့နောက် strnatcasecmp နှင့်အတူခင်းကျင်းရန် abortort function ကိုအသုံးပြုပါ။ နောက်ဆုံးတွင် sorted file name ကို output လုပ်ပါ။
strnatcasecmp ၏အင်္ဂါရပ်မှာ၎င်းသည်စာလုံးအကြီးအသေးအရေးမကြီးဟုဆိုလိုသောကြောင့်၎င်းသည် sorting လုပ်ငန်းစဉ်အတွင်းအက်ခရာများ၏ပြ problem နာကိုအလိုအလျောက်လျစ်လျူရှုလိမ့်မည်။ ဥပမာအားဖြင့် img1.jpg နှင့် img1.jpg ရှိလျှင်၎င်းတို့ကိုတန်းတူပြုလုပ်ပါက (သဘာဝအနေဖြင့် img1.jpg ) သည် img10.jpg ၏ရှေ့တွင်ရှိလိမ့်မည်။
သငျသညျစိတ်ကြိုက် sorting လုပ်ဆောင်ချက်များကိုအားဖြင့် parameters တွေကိုမျိုးစုံ sort နိုင်ပါတယ်။ ကွဲပြားခြားနားသောအမျိုးအစားများ strings များ၏ arrays များ၏သဘာဝ sorting များအတွက် strnatcasecmp အသုံးပြုနည်းကိုဖေါ်ပြခြင်းဥပမာတစ်ခုမှာ -
<?php
// တစ် ဦး စိတ်ကြိုက် sorting function ကိုသတ်မှတ်
function customSort($a, $b) {
return strnatcasecmp($a, $b);
}
// sorted ခံရဖို့ Arrays
$array = array(
"a20", "a2", "a10", "b1", "b10"
);
// အသုံးပြု uasort မျိုးခွဲ
uasort($array, 'customSort');
// output ကို sorted ရလဒ်များ
foreach ($array as $value) {
echo $value . "<br>";
}
?>
ဤဥပမာတွင် Uasort function နှင့် strnatcasecmp ကို အက္ခရာများနှင့်နံပါတ်များပါ 0 င်ရန်သဘာဝအားဖြင့်ခွဲခြားရန်အသုံးပြုသည်။ Array ရှိ Element များသည်သဘာဝအမိန့်တွင်စီစဉ်ထားသည်ကိုသင်တွေ့နိုင်သည်။
URLs များပါ 0 င်သော string array များကိုသဘာဝကျကျ sort လုပ်ရန်လိုအပ်ပါက strnatcasecmp သည် ကောင်းမွန်စွာအလုပ်လုပ်သည်။ ကျွန်ုပ်တို့တွင်ဒိုမိန်းအမည်များနှင့်အတူ URLs အစုတခုရှိသည်ဆိုပါစို့။ လမ်းကြောင်းအတိုင်းသဘာဝကျကျ sort လိုသောကြောင့်အောက်ပါကုဒ်ကိုသုံးနိုင်သည်။
<?php
// အဓိပ္ပာယ်ဖွင့်ဆိုချက်များပါရှိသည် URL ၏ခင်းကျင်း
$urls = array(
"https://gitbox.net/file20.jpg",
"https://gitbox.net/file3.jpg",
"https://gitbox.net/file100.jpg",
"https://gitbox.net/file12.jpg",
"https://gitbox.net/file1.jpg"
);
// အသုံးပြု usort နှင့် strnatcasecmp မျိုးခွဲ
usort($urls, 'strnatcasecmp');
// output ကို sorted ရလဒ်များ
foreach ($urls as $url) {
echo $url . "<br>";
}
?>
အထက်ပါဥပမာများနှင့်အတူ strnatcasecmp function သည်သဘာဝ sorting အတွက်အလွန်သင့်လျော်သောကိရိယာတစ်ခုဖြစ်ကြောင်းကျွန်ုပ်တို့တွေ့မြင်နိုင်သည်။ Sorting functions များကဲ့သို့သောလုပ်ငန်းဆောင် တာ များကို ပြုလုပ်သော လုပ်ဆောင်မှုများနှင့်အတူ၎င်းသည်ကျွန်ုပ်တို့အားသဘာဝအမိန့်တွင် parameters များကိုအလွယ်တကူခွဲနိုင်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။
ဒီဆောင်းပါးက stringscasecmp function ကိုဘယ်လိုသုံးရမလဲဆိုတာကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်၎င်းတို့အားအမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုသို့ကျင့်သုံးရန်မည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်မျှော်လင့်ပါသည်။