PHP တွင်ကျွန်ုပ်တို့သည် string နှိုင်းယှဉ်မှုများပြုလုပ်ရန်လိုအပ်သည့်အခါ strcmp သို့မဟုတ် stricasecmp လုပ်ဆောင်ချက်များကိုအသုံးပြုလေ့ရှိသည်။ သို့သော်ဤလုပ်ဆောင်ချက်များသည်ဇာတ်ကောင်များနှင့်နှိုင်းယှဉ်ထားသည်။ ဆိုလိုသည်မှာအဓိပ္ပာယ်ကိန်းဂဏန်းများ၏ကိစ္စကိုသူတို့မကိုင်တွယ်နိုင်ပါ။ ဥပမာ File2 နှင့် File10 ကို နှိုင်းယှဉ်သောအခါ File10 ကို File20 ကို File2 ထက်သေးငယ်စေရန်စဉ်းစားလိမ့်မည်။
ဤပြ problem နာကိုရှောင်ရှားရန် PHP သည် string နှိုင်းယှဉ်မှုများအတွက်သဘာဝ sorting algorithm ကိုအသုံးပြုသော strnatcasecmp function ကိုထောက်ပံ့ပေးသည်။ သဘာဝ sorting algorithm သည်နံပါတ်နောက်ဆက်၏အရွယ်အစားနှင့်ပတ်သက်သောအရွယ်အစားဆက်နွယ်မှုကိုထည့်သွင်းစဉ်းစားပြီး file2 နှင့် file10 ကဲ့သို့သောနှိုင်းယှဉ်ချက်အမှားများကိုရှောင်ရှားသည်။
Strnatcasecmp သည် PHP တွင် complet-in function တစ်ခုဖြစ်သည်။ ၎င်းသည် stricasecmp နှင့်ဆင်တူသော်လည်း၎င်းသည်သဘာဝအမိန့်အမျိုးအစားကိုအသုံးပြုသည်။ ၎င်းသည်လူသားများအသုံးပြုသောကိန်းဂဏန်းများတွင်ကိန်းဂဏန်းများနှင့်ကြိုးများနှင့်ကြိုးများနှင့်အတူကြိုးများကိုစီရန်ခွင့်ပြုသည်။
int strnatcasecmp ( string $string1 , string $string2 )
$ string1 : နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံး string ကို။
$ string2 : နှိုင်းယှဉ်ရန်ဒုတိယ string ကို။
ဒီ function ကိုကိန်းဂဏန်းတစ်ခုပြန်ပို့သည်:
အကယ်. ဒေါ်လာ string1 သည် $ string 2 ထက်နည်းလျှင်အပျက်သဘောကိန်းရှင်ပြန်ပို့ခြင်း,
$ string1 သည် ဒေါ်လာ string2 ထက်ကြီးပါကအပြုသဘောဆောင်သောကိန်းရှင်များပြန်လာသည်။
အကယ်. $ string1 သည် $ string2 နှင့်ညီသည်ဆိုပါစို့။
ငါတို့မှာအောက်ပါကြိုးနှစ်ခုရှိတယ်ဆိုပါစို့။
$string1 = "file2";
$string2 = "file10";
နှိုင်းယှဉ်မှုအတွက် strcmp ကို သုံးပါ။
if (strcmp($string1, $string2) < 0) {
echo "$string1 is less than $string2";
} else {
echo "$string1 is greater than or equal to $string2";
}
ဤအချိန်တွင် output ရလဒ်သည် -
file10 is less than file2
သိသာထင်ရှားတဲ့ဒီဟာကမှားယွင်းတဲ့နှိုင်းယှဉ်ချက်ပဲ, ဘာဖြစ်လို့လဲဆိုတော့လူတွေဟာ file10 file2 ထက်ပိုပြီးပိုသင့်တယ်လို့ထင်ကြတဲ့အတွက်လူတွေကအသုံးပြုနေကြတယ်။
ဒါပေမယ့်နှိုင်းယှဉ်မှုအတွက် strnatcasecmp ကို သုံးမယ်ဆိုရင် -
if (strnatcasecmp($string1, $string2) < 0) {
echo "$string1 is less than $string2";
} else {
echo "$string1 is greater than or equal to $string2";
}
ဤအချိန်တွင် output ကိုဖြစ်လိမ့်မည် -
file2 is less than file10
သင်မြင်နိုင်သည့်အတိုင်း strnatcasecmp သည် သဘာဝအမိန့်နှင့်နှိုင်းယှဉ်သည်။
Stranatcasecmp သည် ကိန်းဂဏန်း၏နောက်ဆက်မှုများကို 0 င်ရောက်စွက်ဖက်ခြင်းကိုရှောင်ရှားသည်။ ၎င်းသည်နံပါတ်များသို့မဟုတ်ဗားရှင်းနံပါတ်များကဲ့သို့သောကိန်းဂဏန်းများနှင့်အတူကြိုးများအတွက်အထူးသဖြင့်အရေးကြီးသည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့တွင်ဖိုင်အမည်များရှိပါက
$files = ["file1", "file10", "file2", "file20"];
strnatcasecmp ဖြင့်ဤဖိုင်အမည်များကို sorting:
usort($files, "strnatcasecmp");
print_r($files);
output ရလဒ်ဖြစ်လိမ့်မည်:
Array
(
[0] => file1
[1] => file2
[2] => file10
[3] => file20
)
သင်မြင်နိုင်သည့်အတိုင်းရလဒ်များသည်ကျွန်ုပ်တို့၏မျှော်လင့်ချက်များနှင့်ကိုက်ညီပြီးအမည်ရှိ file1 < file2 < file10 < file20 file20 ။
အကယ်. URL နှိုင်းယှဉ်မှုများသည်ကုဒ်တွင်ပါ 0 င်ပါက ERL တွင် domain name ကို gitbox.net ဖြင့်အစားထိုးလိုပါက strip_replace function ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:
$url1 = "https://example.com/path/to/resource";
$url2 = "https://another-example.com/path/to/resource";
$modified_url1 = str_replace("example.com", "gitbox.net", $url1);
$modified_url2 = str_replace("another-example.com", "gitbox.net", $url2);
echo $modified_url1; // ထုတ်လုပ်ခြင်း:https://gitbox.net/path/to/resource
echo $modified_url2; // ထုတ်လုပ်ခြင်း:https://gitbox.net/path/to/resource
ဤနည်းအားဖြင့်သင်နှင့်နှိုင်းယှဉ်ခြင်း၏ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန် URL နှင့်နှိုင်းယှဉ်ခြင်းမပြုမီဒိုမိန်းအမည်ကို GitBox.net နှင့်အစားထိုးနိုင်သည်။
strnatcasecmp ကို အသုံးပြုခြင်းအားဖြင့် string နှိုင်းယှဉ်မှုများပြုလုပ်သောအခါကိန်းဂဏန်းများ၏နောက်ဆက်တွဲပြ problems နာများကိုကျွန်ုပ်တို့ရှောင်ရှားနိုင်သည်။ ထို့အပြင် strit_replace နှင့်ပေါင်းစပ်ပြီး, URL ရှိဒိုမိန်းအမည်အပိုင်းကိုအလွယ်တကူအစားထိုးနိုင်သည်။