ဘာသာစကားမျိုးစုံဇာတ်ကောင်များနှင့်ဆက်ဆံရာတွင်ကျွန်ုပ်တို့သည်ကြိုးများကိုမကြာခဏခွဲရန်လိုအပ်သည်။ သာမန် string sorting သည်များသောအားဖြင့်အက္ခရာစဉ်အတိုင်းအခြေခံသည်။ PHP တွင် strnatcasecmp function သည်ဤပြ problem နာကိုဖြေရှင်းရန်ဖြစ်သည်။ ဒါဟာသဘာဝအဖြစ်ရေးကိစ္စစဉ်းစားခြင်းမရှိဘဲ strings မျိုးနိုင်ပါတယ်။
သဘာဝ sorting ဆိုသည်မှာနံပါတ်များကိုတစ်ပြိုင်နက်တည်းတစ် ဦး ချင်းစီကတစ် ဦး ချင်းစီမှတစ်ခုကတစ် ဦး ချင်းစီကနှိုင်းယှဉ်ခြင်းထက်သူတို့၏တန်ဖိုးများအားဖြင့်၎င်းတို့၏တန်ဖိုးများဖြင့်ခွဲခြားထားသောနည်းလမ်းဖြစ်သည်။ ဥပမာအားဖြင့်:
"item1" ကို "item12" ရှေ့တွင်ရှိလိမ့်မည်။
"item2" ကို "item21" ရှေ့တွင်ရှိလိမ့်မည်။
ဤအမျိုးအစားသည်အထူးသဖြင့်ဖိုင်အမည်များ, ဗားရှင်းနံပါတ်များ, ထုတ်ကုန်နံပါတ်များစသည်တို့စသည့်ကြိုးများပါ 0 င်သည့်ကြိုးများနှင့်အထူးသဖြင့်သင့်တော်သည်။
PHP ၏ strnatcasecmp function ကိုသဘာဝအစဉ်နှစ်ခုကိုနှိုင်းယှဉ်ရန်အသုံးပြုသည်။ ၎င်းသည် stricasecmp function နှင့်ဆင်တူသည်, ခြားနားချက်မှာ strnatcasecmp သည် သဘာဝ sorting စည်းမျဉ်းစည်းကမ်းများကိုမွေးစားခြင်းနှင့်ဖြစ်ရပ်မှန်အာရုံမခံစားနိုင်သောကြောင့်ဖြစ်သည်။
function ရှေ့ပြေးပုံစံ:
int strnatcasecmp ( string $str1 , string $str2 )
$ str1 နှင့် $ str2 နှိုင်းယှဉ်ခံရဖို့ကြိုးနှစ်ချောင်းရှိပါတယ်။
Return Value: $ str1 သည် ဒေါ်လာ str2 ထက်နည်းလျှင်အပျက်သဘောဆောင်သောကိန်းရှင်များပြန်လာသည်။ ညီမျှလျှင် 0 ပြန်လာ; အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်ကြီးလျှင်အပြုသဘောဆောင်သောကိန်းရှင်များပြန်လာသည်။
ဘာသာစကားမျိုးစုံသောကြိုးများအနေဖြင့် strnatcasecmp အတွက်သဘာဝကျကျခွဲခြားနိုင်သည်။ သို့သော် sorting စည်းမျဉ်းစည်းကမ်းများကွဲပြားခြားနားသောဇာတ်ကောင်အစုံအကြားကွဲပြားနိုင်သည်။ PHP တွင် strnatcasecmp ကို UTF-8 encoding ဖြင့်ပုံမှန်အားဖြင့်ခွဲခြားထားသဖြင့်ဘာသာစကားမျိုးစုံဇာတ်ကောင်အစုံများ၏ကြိုးများကိုကိုင်တွယ်နိုင်သည်။
ဥပမာအားဖြင့်, ကျွန်ုပ်တို့သည်တရုတ်, အင်္ဂလိပ်နှင့်အခြားဇာတ်ကောင်များပါ 0 င်သော Array များ၌အစုရှယ်ယာများကိုခွဲခြားလိုပါကအောက်ပါအတိုင်းပြုလုပ်နိုင်သည်။
<?php
// sorted ခံရဖို့ကြိုးများခင်းကျင်း
$array = [
'စာချုပ်စာတမ်း3.txt',
'စာချုပ်စာတမ်း1.txt',
'စာချုပ်စာတမ်း2.txt',
'File10.txt',
'File2.txt',
'စာချုပ်စာတမ်း11.txt'
];
// စိတ်ကြိုက် sorting လုပ်ဆောင်ချက်များကို
usort($array, function($a, $b) {
return strnatcasecmp($a, $b);
});
// output ကို sorted array
print_r($array);
?>
Array
(
[0] => စာချုပ်စာတမ်း1.txt
[1] => စာချုပ်စာတမ်း2.txt
[2] => စာချုပ်စာတမ်း3.txt
[3] => File2.txt
[4] => File10.txt
[5] => စာချုပ်စာတမ်း11.txt
)
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် abort function ကိုစာလုံးအကြီးအလုံးများစွာပါဝင်သော array တစ်ခုစီကိုစီရန်အသုံးပြုသည်။ စိတ်ကြိုက်နှိုင်းယှဉ်မှု function strnatcasecmp ကိုထောက်ပံ့ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် File name များ၏သဘာဝအမျိုးအစားများကိုအကောင်အထည်ဖော်သည်။ နံပါတ်အမျိုးအစားသည်လူအလေ့အထများနှင့်ကိုက်ညီသည်, ဖိုင် 10.txt နောက်ကွယ်မှ ဖိုင် 2.txt နောက်ကွယ်မှအဆင့်သတ်မှတ်ချက်နှင့် file2.txt အဆင့်သတ်မှတ်ချက်ကို file10.txt အဆင့်သတ်မှတ်ချက်နှင့်ကိုက်ညီသည်ကိုသင်တွေ့နိုင်သည်။
URL လိပ်စာများသည်လျှောက်လွှာတွင်ပါ 0 င်ပြီးထို URL များတွင်ဒိုမိန်းအမည်အပိုင်းတွင်အစားထိုးရန်လိုအပ်နိုင်သည်။ PHP ရဲ့ string processing function မှတဆင့်ဒီနည်းကိုလုပ်နိုင်ပါတယ်။ Gitbox.net နှင့်အတူ domain name ကိုမည်သို့အစားထိုးရမည်ကိုဥပမာတစ်ခုပြထားသည်။
<?php
// အစားထိုးခံရဖို့ URL
$url = "https://www.example.com/path/to/resource";
// ဒိုမိန်းအမည်ကိုအစားထိုးပါ
$new_url = preg_replace('/^https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
// output အသစ် URL
echo $new_url; // ထုတ်လုပ်ခြင်း:https://gitbox.net/path/to/resource
?>
PHP တွင် strnatcasecmp function သည်အထူးသဖြင့်ဘာသာစကားမျိုးစုံဇာတ်ကောင်အစုံများ၏ကြိုးများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါအလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ကြိုးများကိုသဘာဝအရပိုင်းဆိုင်ရာစည်းမျဉ်းစည်းကမ်းများအရနှိုင်းယှဉ်သည်။ ထို့အပြင် string processing လုပ်ဆောင်ချက်များကိုအကူအညီဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောလိုအပ်ချက်များနှင့်ကိုက်ညီရန် URL ရှိဒိုမိန်းအမည်များကိုလည်းအဆင်ပြေစွာအစားထိုးနိုင်သည်။
PHP တွင်သဘာဝနှင့် URL များကိုမည်သို့ခွဲခြားရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုနားလည်ရန်ကူညီပေးပါ။ သင့်တွင်မေးခွန်းများသို့မဟုတ်နောက်ထပ်လိုအပ်ချက်များရှိပါကမေးခွန်းများမေးရန်အခမဲ့ခံစားရပါ။