PHP တွင် strnatcasecmp () သည် "သဘာဝ sorting" အတွက်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့် strnatcasecmp () strnatcasecmp () ကြိုးများသည် strings ၏ပကတိတန်ဖိုးဖြင့်မဟုတ်ဘဲကြိုးများကိုကိန်းဂဏန်းများနှင့်နှိုင်းယှဉ်သည်။ သို့သော်တစ်ခါတစ်ရံတွင်ပိုမိုပြောင်းလွယ်ပြင်လွယ်သောသဘာဝ sorting များအတွက်သတ်သတ်မှတ်မှတ်လိုအပ်ချက်များကို အခြေခံ. sorting စည်းမျဉ်းများကိုစိတ်ကြိုက်ပြင်ဆင်ရန်လိုအပ်နိုင်သည်။
PHP တွင် strnatcasecmp () function ကို collation စည်းမျဉ်းစည်းကမ်းများကိုမည်သို့စိတ်ကြိုက်ပြင်ဆင်ရမည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာ PHP တွင်ပုံမှန် strnatcasecmp () function ကိုမည်သို့လုပ်ဆောင်သည်ကိုသုံးသပ်ကြည့်ကြစို့။
strnatcasecmp () ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$array = ["file10.txt", "file2.txt", "file1.txt"];
usort($array, "strnatcasecmp");
print_r($array);
?>
ရလဒ်ရလဒ် -
Array
(
[0] => file1.txt
[1] => file2.txt
[2] => file10.txt
)
ဤဥပမာတွင် strnatcasecmp () ဖိုင်အမည်များကိုနံပါတ်များ၏သဘာဝ sorting စည်းမျဉ်းများအရဖိုင်အမည်များကိုစီရန်။
အချို့သောသတ်သတ်မှတ်မှတ်စည်းမျဉ်းစည်းကမ်းများဖြင့်ကြိုးများကိုစီလိုပါကနှိုင်းယှဉ်ခြင်း function ကိုစိတ်ကြိုက်ပြုပြင်ခြင်းဖြင့်၎င်းကိုကျွန်ုပ်တို့လုပ်နိုင်သည်။ ၎င်းကို sorting function ကိုအကောင်အထည်ဖော်ခြင်းနှင့် USort () function တွင် အသုံးပြု. အသုံးပြုနိုင်သည်။
URL ၏သန်ဓေသားများပါ 0 င်သည့်ကြိုးများကိုသဘာဝကျကျခွဲထားရန်လိုအပ်ပြီး URL ရှိဒိုမိန်းအမည်အပိုင်းကို GITBOX.NET နှင့်အစားထိုးလိမ့်မည်ဟုမျှော်လင့်ပါသည်ဆိုပါစို့။ ဤတွင်ဤလိုအပ်ချက်ကိုအကောင်အထည်ဖော်သည့်ကုဒ်နမူနာတစ်ခုရှိသည်။
<?php
// စိတ်ကြိုက်နှိုင်းယှဉ်လုပ်ဆောင်ချက်များ
function custom_strnatcasecmp($a, $b) {
// သေတမ်းစာ URL ဒိုမိန်းအမည်ကိုအစားထိုးပါ gitbox.net
$a = preg_replace('/https?:\/\/([^\/]+)/', 'https://gitbox.net', $a);
$b = preg_replace('/https?:\/\/([^\/]+)/', 'https://gitbox.net', $b);
// အသုံးပြု strnatcasecmp အစားထိုး strings နှိုင်းယှဉ်
return strnatcasecmp($a, $b);
}
// နမူနာဒေတာ,ပါဝင် URL
$array = [
"https://example.com/page1",
"https://gitbox.net/page2",
"https://test.com/page3",
"https://gitbox.net/page10"
];
// အသုံးပြု自定义比较函数进行排序
usort($array, "custom_strnatcasecmp");
// output ကို sorted ရလဒ်များ
print_r($array);
?>
ဒီဥပမာမှာ Custom_strnatcasecmp () function ကိုသတ်မှတ်ပါတယ်။ ဒီ function အတွင်းမှာ Preg_replace () function ကို Gitatbox မှာ domain name ကိုအစားထိုးဖို့ preg_replace () function ကိုသုံးပါ။ ပြီးတော့ strnatcasecmp () ကိုသုံးပါ။
output ရလဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
Array
(
[0] => https://gitbox.net/page2
[1] => https://gitbox.net/page10
[2] => https://gitbox.net/page3
[3] => https://gitbox.net/page1
)
သင်မြင်နိုင်သည့်အတိုင်း URL အားလုံးကို gitbox.net ဖြင့်အစားထိုးထားပြီးစာမျက်နှာ၏အလိုအလျှောက်အရခွဲခြားထားသည်။
URL domain name အစားထိုးခြင်းအပြင်သင်သည်အခြားအမျိုးအစားခွဲစည်းမျဉ်းများကိုအကောက်ခွန်အမျိုးအစားခွဲခြားခြင်းလုပ်ငန်းများတွင်လည်းအကောင်အထည်ဖော်နိုင်သည်။ ဥပမာအားဖြင့်, သင်ကသဘာဝကျကျရက်စွဲတစ်ခုပါ 0 င်သော string တစ်ခုစီကို sort လိုပါကသင် strtotime () ကိုသုံးနိုင်သည်။
<?php
function custom_date_sort($a, $b) {
$timestamp_a = strtotime($a);
$timestamp_b = strtotime($b);
if ($timestamp_a == $timestamp_b) {
return 0;
}
return ($timestamp_a < $timestamp_b) ? -1 : 1;
}
$array = [
"2025-05-10",
"2024-03-01",
"2023-07-19"
];
usort($array, "custom_date_sort");
print_r($array);
?>
ဤနည်းအားဖြင့်သင်၏လိုအပ်ချက်များနှင့်အညီမည်သည့်ကြိုးအမျိုးအစားကိုမဆိုသင်ပြောင်းလွယ်ပြင်လွယ် sort နိုင်သည်။
နှိုင်းယှဉ်မှု function ကိုစိတ်ကြိုက်ပြုပြင်ခြင်းအားဖြင့် PHP ရှိကြိုးများ၏ sorting စည်းမျဉ်းစည်းကမ်းများကိုသင်ထိန်းချုပ်နိုင်သည်။ ၎င်းသည် domain name အပိုင်းကို URL ၏အစိတ်အပိုင်းကိုအစားထိုးခြင်းသို့မဟုတ်အခြားစံနှုန်းများနှင့် (ထိုကဲ့သို့သောရက်စွဲများနှင့်နံပါတ်များကဲ့သို့) ကိုအစားထိုးခြင်း, ၎င်းကိုပြောင်းလွယ်ပြင်လွယ်ကုဒ်မှတဆင့်အောင်မြင်နိုင်သည်။ strnatcasecmp () () သည်သင့်အားကြိုးကြိုးများကိုသဘာဝဖြင့်နှိုင်းယှဉ်ရန်အထောက်အကူပြုသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။