လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် strnatcasecmp ဖြင့်ဖိုင်အမည်များကိုသဘာဝကျကျခွဲဝေနည်း။

PHP တွင် strnatcasecmp ဖြင့်ဖိုင်အမည်များကိုသဘာဝကျကျခွဲဝေနည်း။

gitbox 2025-05-20

အခြေအနေအတော်များများတွင်ကျွန်ုပ်တို့သည်ဖိုင်အမည်ဖြင့်စီရန်လိုအပ်သည်။ ထိုကဲ့သို့သောအဘိဓာန် sorting အဖြစ်ဘုံအမျိုးအစားများကိုမမျှော်လင့်သောရလဒ်များဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့်, ဖိုင် 2.txt သည် " 2" သည် "1" ထက်သေးငယ်သည်။ သို့သော်အသုံးပြုသူများသည်များသောအားဖြင့်ဖိုင်အမည်များကိုကိန်းဂဏန်းအမှာစာဖြင့်ခွဲထားလိုသည်။ I.E. file2.txt ကို File10.txt ဟုခေါ်သည်။

PHP တွင် strnatcasecmp လုပ်ဆောင်ချက်သည်ဤလိုအပ်ချက်ကိုဖြည့်ဆည်းရန်ဒီဇိုင်းပြုလုပ်ထားသည်။ ၎င်းသည်ကြိုးနှစ်ချောင်းကိုနှိုင်းယှဉ်နိုင်ပြီးသဘာဝ sorting စည်းမျဉ်းများအရ၎င်းတို့ကိုစီပါ။ strnatcasecmp သည် "case-case-canning insensitic" သဘာဝ sorting method တစ်ခုဖြစ်သည်။

သဘာဝကဘာလဲ?

သဘာဝ sorting သည်လူ့အလိုအလျောက် sorting အပေါ်အခြေခံသည်။ ဥပမာအားဖြင့် File Name1 , File2 , File10 ဖိုင်တွင်သဘာဝတွင်အမျိုးအစားခွဲခြင်း၏ရလဒ်မှာ -

 file1
file2
file10

အဘိဓာန်အမျိုးအစားခွဲခြင်း၏ -

 file1
file10
file2

သဘာဝ sorting အတွက် strnatcasecmp ကိုဘယ်လိုသုံးရမလဲ။

Strnatcasecmp သည် PHP တွင်အလွန်အသုံးဝင်သော function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 int strnatcasecmp ( string $string1 , string $string2 )
  • $ string1 နှင့် $ string2 သည်နှိုင်းယှဉ်ရန်ကြိုးနှစ်ချောင်းရှိသည်။

  • function ကိုပြန်လာတန်ဖိုး -

    • အကယ်. $ string1 သည် $ string2 ထက်နည်းပါကအနုတ်လက်ခဏာတစ်ခုသို့ပြန်ပို့သည်။

    • အကယ်. $ string1 သည် $ string2 နှင့်ညီသည်ဆိုပါစို့။

    • အကယ်. $ string1 သည် $ string2 ထက်ကြီးပါကအပြုသဘောဆောင်သောကိန်းရှင်များပြန်လာသည်။

ဒီ function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဖိုင်အမည်များ၏သဘာဝအမျိုးအစားကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ File အမည်များကို strnatcasecmp ကို ဘယ်လိုအမျိုးအစားခွဲခြားရမယ်ဆိုတာပြသတဲ့ဥပမာတစ်ခုပါ။

နမူနာကုဒ်

ကျွန်ုပ်တို့တွင်အောက်ပါဖိုင်အမည်ရှိသည်ဆိုပါစို့။

 $files = ['file10.txt', 'file2.txt', 'file1.txt', 'file20.txt', 'file11.txt'];

ဤဖိုင်အမည်များကိုသဘာဝကျကျ sort လုပ်လိုပါသည်။ ထို့ကြောင့်ဖိုင်အမည်များကိုကိန်းဂဏန်းအမှာစာတွင်စီစဉ်ထားသည်။ အောင်မြင်ရန် strnatcasecmp ကို သုံးနိုင်သည်။

 <?php
$files = ['file10.txt', 'file2.txt', 'file1.txt', 'file20.txt', 'file11.txt'];

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

// sorted file name output ကို output
print_r($files);
?>

code parsing

  1. Filenames $ files များကို ကျွန်ုပ်တို့သတ်မှတ်သည်။

  2. ခင်းကျင်းမှုကိုလက်ခံ သည့် array နှင့် callback function ကို parameter များအဖြစ်လက်ခံရန် abort function ကိုသုံးပါ။ ဤနေရာတွင်ကျွန်ုပ်တို့သည် strnatcasecmp ကို CallbackCAST သို့ပို့ဆောင်ခြင်းအတွက် pass ကိုဖြတ်သန်းသွားသည်။

  3. Sorting ပြီးစီးပြီးနောက် $ files array ရှိဖိုင်အမည်များကိုသဘာဝ sorting စည်းမျဉ်းများအရစီစဉ်လိမ့်မည်။

ရလဒ်ရလဒ်

 Array
(
    [0] => file1.txt
    [1] => file2.txt
    [2] => file10.txt
    [3] => file11.txt
    [4] => file20.txt
)

သင်မြင်နိုင်သည့်အတိုင်းဖိုင်အမည်များကိုနံပါတ်များအလိုက်ခွဲထားပြီးဖြစ်သည်။ ဤနည်းအားဖြင့် File2.txt သည် File10.txt ၏ရှေ့တွင်ရှိသည်။

strnatcasecmp နှင့် strnatcmp အကြားခြားနားချက်

strnatcmp နှင့် strnatcasecmp သည် PHP တွင် PHP တွင်အသုံးပြုသောလုပ်ဆောင်ချက်များကိုသဘာဝ sorting အတွက်အသုံးပြုသည်။ နှစ်ခုအကြားခြားနားချက်မှာ -

  • strnatcmp သည်စာလုံးအကြီးအသေးအရေးကြီးသည်။

  • strnatcasecmp ကိစ္စ - အာရုံမခံစားနိုင်။

ဖိုင်အမည်များတွင်ကိစ္စရပ်များကိုသင်လျစ်လျူရှုလိုပါက strnatcasecmp ကို သုံးနိုင်သည်။ ဒီလိုမှမဟုတ်ရင် strnatcmp ကို သုံးရန်သင်ရွေးချယ်နိုင်သည်။

strnatcasecmp သည်ပုံမှန် strcmp ထက် ပို. အဘယ်ကြောင့်ပိုမိုကောင်းမွန်သနည်း။

StrcMP ကဲ့သို့သောသာမန် string နှိုင်းယှဉ်လုပ်ဆောင်မှုများကိုအသုံးပြုသောအခါ "File2.txt" နှင့် "file10.txt" ကဲ့သို့သောပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။ strnatcasecmp သည် strings များကိုကိန်းဂဏန်းအမှာစာနှင့်နှိုင်းယှဉ်နိုင်သည်။