လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အဆင့်မြင့်အသုံးပြုမှု - PHP တွင် strnatcasecmp collation ကိုမည်သို့စိတ်ကြိုက်ပြုလုပ်နိုင်ပုံ?

အဆင့်မြင့်အသုံးပြုမှု - PHP တွင် strnatcasecmp collation ကိုမည်သို့စိတ်ကြိုက်ပြုလုပ်နိုင်ပုံ?

gitbox 2025-05-19

PHP တွင် strnatcasecmp () သည် "သဘာဝ sorting" အတွက်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့် strnatcasecmp () strnatcasecmp () ကြိုးများသည် strings ၏ပကတိတန်ဖိုးဖြင့်မဟုတ်ဘဲကြိုးများကိုကိန်းဂဏန်းများနှင့်နှိုင်းယှဉ်သည်။ သို့သော်တစ်ခါတစ်ရံတွင်ပိုမိုပြောင်းလွယ်ပြင်လွယ်သောသဘာဝ sorting များအတွက်သတ်သတ်မှတ်မှတ်လိုအပ်ချက်များကို အခြေခံ. sorting စည်းမျဉ်းများကိုစိတ်ကြိုက်ပြင်ဆင်ရန်လိုအပ်နိုင်သည်။

PHP တွင် strnatcasecmp () function ကို collation စည်းမျဉ်းစည်းကမ်းများကိုမည်သို့စိတ်ကြိုက်ပြင်ဆင်ရမည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ ပုံမှန်သဘာဝ sorting

ပထမ ဦး စွာ 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 စည်းမျဉ်းများအရဖိုင်အမည်များကိုစီရန်။

2 ။ 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 ဖြင့်အစားထိုးထားပြီးစာမျက်နှာ၏အလိုအလျှောက်အရခွဲခြားထားသည်။

3 ။ အခြားအမျိုးအစားများအတွက်ထုံးစံ sorting စည်းမျဉ်းစည်းကမ်းများကိုသုံးပါ

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 နိုင်သည်။

4 ။ အကျဉ်းချုပ်

နှိုင်းယှဉ်မှု function ကိုစိတ်ကြိုက်ပြုပြင်ခြင်းအားဖြင့် PHP ရှိကြိုးများ၏ sorting စည်းမျဉ်းစည်းကမ်းများကိုသင်ထိန်းချုပ်နိုင်သည်။ ၎င်းသည် domain name အပိုင်းကို URL ၏အစိတ်အပိုင်းကိုအစားထိုးခြင်းသို့မဟုတ်အခြားစံနှုန်းများနှင့် (ထိုကဲ့သို့သောရက်စွဲများနှင့်နံပါတ်များကဲ့သို့) ကိုအစားထိုးခြင်း, ၎င်းကိုပြောင်းလွယ်ပြင်လွယ်ကုဒ်မှတဆင့်အောင်မြင်နိုင်သည်။ strnatcasecmp () () သည်သင့်အားကြိုးကြိုးများကိုသဘာဝဖြင့်နှိုင်းယှဉ်ရန်အထောက်အကူပြုသောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။