လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Arrays ကို strnatcasecmp နှင့် Usort နှင့်ပေါင်းစပ်နိုင်ပါသလား။

Arrays ကို strnatcasecmp နှင့် Usort နှင့်ပေါင်းစပ်နိုင်ပါသလား။

gitbox 2025-05-29

PHP တွင် strnatcasecmp သည် strnatcasecmp သည် strings များကိုသဘာဝကျကျပြုလုပ်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးတွင်ဤလုပ်ငန်းဆောင်တာများကို arrays ၏သဘာဝ sorting function ကိုအကောင်အထည်ဖော်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ပါမည်။ သဘာဝ sorting ဆိုသည်မှာလူသားများကလူတို့အားခွဲဝေခြင်းကိုဆိုလိုသည်။ နံပါတ်များသည်နံပါတ်များကိုနံပါတ်များ၏အရွယ်အစားဖြင့်ခွဲခြားထားသည်။ ဥပမာ string arrays sorting ကို sorting လုပ်သည့်အခါ "2" ကို "10" မတိုင်မီတွင်အက္ခရာစဉ်ထက်အဆင့်သတ်မှတ်မည်။

strnatcasecmp လုပ်ဆောင်ချက်ကဘာလဲ။

Strnatcasecmp သည် strcmp နှင့်ဆင်တူသည့် PHP တွင် string နှိုင်းယှဉ်ခြင်း function တစ်ခုဖြစ်သည်။ သို့သော်၎င်းသည် "သဘာဝအစီအစဉ်" တွင်ကြိုးများနှင့်ဆင်တူသည်။ အကယ်. string တစ်ခုတွင်နံပါတ်များပါ 0 င်ပါက၎င်းသည်နံပါတ်များ၏အရွယ်အစားအမှန်တကယ်နှင့်အညီတစ်ပြိုင်နက်တစ်ပြိုင်နက်နှိုင်းယှဉ်ရုံမျှသာမဟုတ်ပါ။ ဥပမာအားဖြင့်:

  • "10" "2" နောက်ကွယ်မှဖြစ်လိမ့်မည်။

  • "A10" "A2" နောက်ကွယ်မှဖြစ်လိမ့်မည်။

လုပ်ဆောင်ချက်များ၏အခြေခံအသုံးပြုမှုမှာ -

 int strnatcasecmp ( string $str1 , string $str2 )

ဒီ function ကကိန်းဂဏန်းတစ်ခုကကိန်းဂဏန်းကိုပြန်ပို့ပေးတယ်။ အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်နည်းလျှင်၎င်းသည်အနုတ်လက်ခဏာတန်ဖိုးကိုပြန်လည်ရရှိစေသည်။ အကယ်. $ str1 သည် ဒေါ်လာ str2 နှင့်ညီသည်ဆိုပါက 0 င်သည် 0; အကယ်. $ str1 သည် ဒေါ်လာ str2 ထက်ကြီးပါက၎င်းသည်အပြုသဘောဆောင်သောတန်ဖိုးကိုပြန်လည်ရောက်ရှိစေသည်။

array ကိုသဘာဝကျကျ sort ဖို့ usort ကို အသုံးပြုနည်း?

USARES သည် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ၎င်းသည်သတ်မှတ်ထားသောနှိုင်းယှဉ်မှုဆိုင်ရာစည်းမျဉ်းစည်းကမ်းများအရ Arrays များကိုစီရန်အသုံးပြုသည်။ USARESARES သည် အမိန့်ဆိုင်ရာစည်းမျဉ်းများကိုသတ်မှတ်ရန် callback function ကိုလိုအပ်သည်။ strnatcasecmp ကို callback function ကို callback function ကို arrays arrays ကိုအကောင်အထည်ဖော်ရန်အသုံးပြုနိုင်သည်။

နမူနာကုဒ်

ငါတို့မှာကြိုးတွေပါဝင်တဲ့နေရာတစ်ခုရှိတယ်ဆိုပါစို့။

 <?php
// မူရင်းခင်းကျင်း
$array = ['10', '2', '1', '20', '100', '11'];

// အသုံးပြု usort နှင့် strnatcasecmp သဘာဝ sorting လုပ်ပါ
usort($array, 'strnatcasecmp');

// print sorted ခင်းကျင်း
print_r($array);
?>

ထုတ်လုပ်မှု -

 Array
(
    [0] => 1
    [1] => 2
    [2] => 10
    [3] => 11
    [4] => 20
    [5] => 100
)

သင်မြင်နိုင်သည်အတိုင်းခင်းကျင်းရှိဒြပ်စင်များကိုသဘာဝအမိန့်တွင်ခွဲထားသည်။

URLs များပါ 0 င်သည့်လုပ်ဆောင်မှုများ

အကယ်. ခင်းကျင်းနေသော etray တွင် URLs များပါ 0 င်ပါကသင်သည်ဤ URL များကိုသဘာဝအမိန့်ဖြင့်ခွဲထားလိုပေမည်။ ဤကိစ္စတွင် URL ၏ string အပိုင်းကိုနှိုင်းယှဉ်ရန် strnatcasecmp ကို သုံးနိုင်သည်။ ကျွန်ုပ်တို့တွင် URL ခင်းကျင်းမှုတစ်ခုရှိသည်ဆိုပါစို့။ Domain Name အတွက်အစားထိုးလိုအပ်ချက်မှာ url domains အားလုံးကို url domains အားလုံးကိုအစားထိုးရန်ဖြစ်သည်

 <?php
// မူရင်းခင်းကျင်း,ပါဝင် URL
$array = [
    'https://example.com/page/10',
    'https://example.com/page/2',
    'https://example.com/page/100',
    'https://example.com/page/11'
];

// 定义一个自定义函数来ဒိုမိန်းအမည်ကိုအစားထိုးပါ并သဘာဝ sorting လုပ်ပါ
function replaceAndCompare($a, $b) {
    // ဒိုမိန်းအမည်ကိုအစားထိုးပါ
    $a = str_replace('example.com', 'gitbox.net', $a);
    $b = str_replace('example.com', 'gitbox.net', $b);
    
    // အသုံးပြု strnatcasecmp သဘာဝ sorting လုပ်ပါ比较
    return strnatcasecmp($a, $b);
}

// အသုံးပြု usort နှင့်自定义的替换比较函数进行排序
usort($array, 'replaceAndCompare');

// print sorted ခင်းကျင်း
print_r($array);
?>

ထုတ်လုပ်မှု -

 Array
(
    [0] => https://gitbox.net/page/2
    [1] => https://gitbox.net/page/10
    [2] => https://gitbox.net/page/11
    [3] => https://gitbox.net/page/100
)

ဤနည်းအားဖြင့်ခင်းကျင်းရှိ URLs များကို domain name ဖြင့်အစားထိုးထားပြီးသဘာဝအမိန့်တွင်စီကြည့်ရှုသည်။

အကျဉ်းချုပ်

ဤဆောင်းပါးသည် PHP တွင် strnatcasecmp function ကို PHP နှင့် aberort function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးသည်။ Array တစ်ခုစီကို sorting လုပ်တဲ့အခါ urray မှာ URL ရှိတယ်ဆိုရင် SMART CRING ကိုအစားထိုးခြင်း (ဥပမာ - gitbox.net မှ throught.com ကိုအစားထိုးခြင်း) ကိုပြောင်းပါ။