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

အက်ခရာနံပါတ်များကိုအက်ခရာနံပါတ်များဖြင့်ခွဲရန် strnatcasecmp ကိုမည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-05-29

ဖိုင်အမည်များနှင့်အလုပ်လုပ်သောအခါကျွန်ုပ်တို့သည်တစ်ခါတစ်ရံတွင်အက်ခရာနံပါတ်ကိုသဘာဝကျကျခွဲရန်လိုအပ်သည့်အခြေအနေများကြုံတွေ့ရသည်။ မကြာခဏရလဒ်များကို sorting ပြ problems နာများရှိနိုင်ပါသည်။ ဥပမာအားဖြင့် "File10.txt" သည် "file10.txt" သည် "file2.txt" ရှေ့တွင်ရှိနိုင်ပါသည်။ သဘာဝ sorting ရရှိရန်အတွက်နံပါတ်များကိုအမှန်တကယ်အရွယ်အစားဖြင့်စီရန် PHP ၏ strnatcasecmp function ကိုအသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည်ဖိုင်အမည်များကိုအကောင်အထည်ဖော်ရန်ဤလုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

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

Strnatcasecmp သည် PHP တွင်ပါ 0 င်သည့်လုပ်ဆောင်မှုတစ်ခုဖြစ်သော function တစ်ခုဖြစ်ပြီး, ရိုးရာ string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်မတူဘဲ Strnatcasecmp သည် နံပါတ်အစိတ်အပိုင်းများကိုကိန်းဂဏန်းများနှင့်နှိုင်းယှဉ်လျှင်နံပါတ်များကိုအရွယ်အစားဖြင့်အရွယ်အစားဖြင့်နှိုင်းယှဉ်သည်။

strnatcasecmp ၏ syntax

 strnatcasecmp(string $string1, string $string2): int
  • $ string1 : နှိုင်းယှဉ်ဖို့ပထမ ဦး ဆုံး string ကို။

  • $ string2 : နှိုင်းယှဉ်ရန်ဒုတိယ string ကို။

ဤလုပ်ဆောင်ချက်သည်အောက်ပါတန်ဖိုးများကိုပြန်ပို့သည်။

  • အကယ်. ဒေါ်လာ string1 သည် $ string 2 ထက်နည်းလျှင်အပျက်သဘောကိန်းရှင်ပြန်ပို့ခြင်း,

  • အကယ်. $ string1 သည် $ string2 နှင့်ညီသည်ဆိုပါက 0 သို့ပြန်သွားပါ။

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

ဖိုင်အမည်များကိုအက်ခရာနံပါတ်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

ကျွန်ုပ်တို့တွင်ဖိုင်အမည်များပါ 0 င်သည်ဆိုပါစို့။ ဖိုင်အမည်များကို sort လုပ်ရန် strnatcasecmp ကို သုံးနိုင်သည်ဆိုပါစို့။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. ဖိုင်အမည်များတစ်ခုခင်းကျင်းရရှိသွားတဲ့။

  2. File Name Array ကို sort လုပ်ရန် strnatcasecmp ပေါင်းစပ်ရန် Usort function ကိုသုံးပါ။

နမူနာကုဒ်:

 <?php
// ဖိုင်ကြော်ငြာ array
$files = [
    "file1.txt",
    "file10.txt",
    "file2.txt",
    "file12.txt",
    "file11.txt",
];

// အသုံးပြု strnatcasecmp သဘာဝ sorting လုပ်ပါ
usort($files, function($a, $b) {
    return strnatcasecmp($a, $b);
});

// sorted file name output ကို output
foreach ($files as $file) {
    echo $file . "\n";
}
?>

ကုဒ်ရှင်းပြချက်:

  1. array အဓိပ္ပာယ်သတ်မှတ်ချက် - ကျွန်ုပ်တို့ပထမ ဦး ဆုံးဖိုင်အမည်များပါ 0 င်သော file files တစ်ခုသတ်မှတ်ခြင်းကိုဆိုလိုသည်။

  2. သဘာဝ sorting : array ကို sort ဖို့ abort function ကိုသုံးပါ။ USARESS သည် array ရှိ element နှစ်ခုစီကိုနှိုင်းယှဉ်ရန် callback function ကိုလိုအပ်သည်။ ကျွန်ုပ်တို့သည် Relnatcasecmp ကို သဘာဝ sorting အတွက် callback function တွင်အသုံးပြုသည်။

  3. output sorted filenames : sorting ပြီးနောက်ကျနော်တို့ forenams sorteach ကို forenames sorteach မှ forenames များကိုသဘာဝပတ်ဝန်းကျင်စီစဉ်ရန်သေချာစေရန် flemenames များကိုထုတ်ယူသည်။

strnatcasecmp ကို အဘယ်ကြောင့်ရွေးချယ်ရသနည်း။

အခြား string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်နှိုင်းယှဉ်လျှင် strnatcasecmp သည် နံပါတ်များပါ 0 င်သောဖိုင်အမည်များကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်။ ၎င်းသည်ကိန်းဂဏန်းများကိုဇာတ်ကောင်နှိုင်းယှဉ်ခြင်းထက်ဂဏန်းအရွယ်အစားဖြင့်စီသည်။ ၎င်းသည် "File2" မတိုင်မီအဆင့်သတ်မှတ်ခံရသည့် "file10" ၏ပြ problem နာကိုရှောင်ရှားသည်။

နမူနာ output ကို:

အထက်ပါကုဒ်ကိုကျွန်ုပ်တို့ဖွင့်လျှင်, output ကိုဖြစ်လိမ့်မည်။

 file1.txt
file2.txt
file10.txt
file11.txt
file12.txt

သင်မြင်နိုင်သည့်အတိုင်းဖိုင်အမည်များကိုသဘာဝအက်ခရာနံပါတ်များအလိုက်ခွဲထားသည်။

URLs အတွက် process ဖိုင်အမည်များ

အချို့သောအခြေအနေများတွင်ကျွန်ုပ်တို့သည်ဖိုင်အမည်ကို URL မှရယူရန်နှင့်၎င်းကိုစီရန်လိုကောင်းလိုလိမ့်မည်။ URL တွင်ဖိုင်အမည်တစ်ခုပါ 0 င်ပါကကျွန်ုပ်တို့သည်ဖိုင်အမည်ကို URL ကို ခွဲခြမ်းစိတ်ဖြာခြင်း ဖြင့်ပထမဆုံးထုတ်ယူနိုင်သည်။ ဥပမာအားဖြင့် URL တွင်ဖိုင်လမ်းကြောင်းတစ်ခုပါ 0 င်ပါကဖိုင်အမည်ကိုရယူရန် Parse_Url နှင့် Basename ကို သုံးနိုင်သည်။

အောက်ပါ URL ရှိတယ်ဆိုပါစို့။

 <?php
// URL အခင်းအကျင်း
$urls = [
    "https://gitbox.net/files/file1.txt",
    "https://gitbox.net/files/file10.txt",
    "https://gitbox.net/files/file2.txt",
];

// ဖိုင်အမည်ကိုထုတ်ယူပါ并သဘာဝ sorting လုပ်ပါ
usort($urls, function($a, $b) {
    // ဖိုင်အမည်ကိုထုတ်ယူပါ
    $fileA = basename(parse_url($a, PHP_URL_PATH));
    $fileB = basename(parse_url($b, PHP_URL_PATH));

    // အသုံးပြု strnatcasecmp ဖိုင်အမည်များကိုနှိုင်းယှဉ်
    return strnatcasecmp($fileA, $fileB);
});

// output ကို sorted URL
foreach ($urls as $url) {
    echo $url . "\n";
}
?>

URL ကိုရှင်းပြချက်ဖြစ်စဉ်ကို

  1. URLs ပါ 0 င်သည့် array တစ်ခု arraling တစ်ခုကိုကျွန်ုပ်တို့ပထမဆုံးသတ်မှတ်သည်။

  2. URL တွင်လမ်းကြောင်းအပိုင်းကို Extract လုပ်ရန် Parse_url function ကိုသုံးပါ, ပြီးနောက်ဖိုင်အမည်ကိုရယူရန် Basename ကို သုံးပါ။

  3. ဖိုင်အမည်များကိုသဘာဝကျကျခွဲရန် strnatcasecmp ကို သုံးပါ။

နမူနာ output ကို:

 https://gitbox.net/files/file1.txt
https://gitbox.net/files/file2.txt
https://gitbox.net/files/file10.txt

အကျဉ်းချုပ်

PHP တွင် strnatcasecmp function ကိုအသုံးပြုခြင်းဖြင့်ကျွန်ုပ်တို့သည်ဖိုင်အမည်များရှိအက်ခရာနံပါတ်များကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်ပြီးဖိုင်အမည်များရှိကိန်းဂဏန်းအစိတ်အပိုင်းများကိုကိန်းဂဏန်းများခွဲခြားထားသည်။ Filename Array သို့မဟုတ် URL မှ filenames များကိုထုတ်ယူခြင်းနှင့်ခွဲထုတ် ခြင်း ,

strnatcasecmp function ကိုအသုံးပြုခြင်းကိုသင်နားလည်ရန်ဤဆောင်းပါးသည်သင်အတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. မေးခွန်းများမေးပါ။