ဖိုင်အမည်များနှင့်အလုပ်လုပ်သောအခါကျွန်ုပ်တို့သည်တစ်ခါတစ်ရံတွင်အက်ခရာနံပါတ်ကိုသဘာဝကျကျခွဲရန်လိုအပ်သည့်အခြေအနေများကြုံတွေ့ရသည်။ မကြာခဏရလဒ်များကို sorting ပြ problems နာများရှိနိုင်ပါသည်။ ဥပမာအားဖြင့် "File10.txt" သည် "file10.txt" သည် "file2.txt" ရှေ့တွင်ရှိနိုင်ပါသည်။ သဘာဝ sorting ရရှိရန်အတွက်နံပါတ်များကိုအမှန်တကယ်အရွယ်အစားဖြင့်စီရန် PHP ၏ strnatcasecmp function ကိုအသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည်ဖိုင်အမည်များကိုအကောင်အထည်ဖော်ရန်ဤလုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
Strnatcasecmp သည် PHP တွင်ပါ 0 င်သည့်လုပ်ဆောင်မှုတစ်ခုဖြစ်သော function တစ်ခုဖြစ်ပြီး, ရိုးရာ string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်မတူဘဲ Strnatcasecmp သည် နံပါတ်အစိတ်အပိုင်းများကိုကိန်းဂဏန်းများနှင့်နှိုင်းယှဉ်လျှင်နံပါတ်များကိုအရွယ်အစားဖြင့်အရွယ်အစားဖြင့်နှိုင်းယှဉ်သည်။
strnatcasecmp(string $string1, string $string2): int
$ string1 : နှိုင်းယှဉ်ဖို့ပထမ ဦး ဆုံး string ကို။
$ string2 : နှိုင်းယှဉ်ရန်ဒုတိယ string ကို။
ဤလုပ်ဆောင်ချက်သည်အောက်ပါတန်ဖိုးများကိုပြန်ပို့သည်။
အကယ်. ဒေါ်လာ string1 သည် $ string 2 ထက်နည်းလျှင်အပျက်သဘောကိန်းရှင်ပြန်ပို့ခြင်း,
အကယ်. $ string1 သည် $ string2 နှင့်ညီသည်ဆိုပါက 0 သို့ပြန်သွားပါ။
အကယ်. $ string1 သည် $ string2 ထက်ကြီးပါကအပြုသဘောဆောင်သောကိန်းရှင်များပြန်လာသည်။
ကျွန်ုပ်တို့တွင်ဖိုင်အမည်များပါ 0 င်သည်ဆိုပါစို့။ ဖိုင်အမည်များကို sort လုပ်ရန် strnatcasecmp ကို သုံးနိုင်သည်ဆိုပါစို့။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
ဖိုင်အမည်များတစ်ခုခင်းကျင်းရရှိသွားတဲ့။
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";
}
?>
array အဓိပ္ပာယ်သတ်မှတ်ချက် - ကျွန်ုပ်တို့ပထမ ဦး ဆုံးဖိုင်အမည်များပါ 0 င်သော file files တစ်ခုသတ်မှတ်ခြင်းကိုဆိုလိုသည်။
သဘာဝ sorting : array ကို sort ဖို့ abort function ကိုသုံးပါ။ USARESS သည် array ရှိ element နှစ်ခုစီကိုနှိုင်းယှဉ်ရန် callback function ကိုလိုအပ်သည်။ ကျွန်ုပ်တို့သည် Relnatcasecmp ကို သဘာဝ sorting အတွက် callback function တွင်အသုံးပြုသည်။
output sorted filenames : sorting ပြီးနောက်ကျနော်တို့ forenams sorteach ကို forenames sorteach မှ forenames များကိုသဘာဝပတ်ဝန်းကျင်စီစဉ်ရန်သေချာစေရန် flemenames များကိုထုတ်ယူသည်။
အခြား string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်နှိုင်းယှဉ်လျှင် strnatcasecmp သည် နံပါတ်များပါ 0 င်သောဖိုင်အမည်များကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်။ ၎င်းသည်ကိန်းဂဏန်းများကိုဇာတ်ကောင်နှိုင်းယှဉ်ခြင်းထက်ဂဏန်းအရွယ်အစားဖြင့်စီသည်။ ၎င်းသည် "File2" မတိုင်မီအဆင့်သတ်မှတ်ခံရသည့် "file10" ၏ပြ problem နာကိုရှောင်ရှားသည်။
အထက်ပါကုဒ်ကိုကျွန်ုပ်တို့ဖွင့်လျှင်, output ကိုဖြစ်လိမ့်မည်။
file1.txt
file2.txt
file10.txt
file11.txt
file12.txt
သင်မြင်နိုင်သည့်အတိုင်းဖိုင်အမည်များကိုသဘာဝအက်ခရာနံပါတ်များအလိုက်ခွဲထားသည်။
အချို့သောအခြေအနေများတွင်ကျွန်ုပ်တို့သည်ဖိုင်အမည်ကို 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";
}
?>
URLs ပါ 0 င်သည့် array တစ်ခု arraling တစ်ခုကိုကျွန်ုပ်တို့ပထမဆုံးသတ်မှတ်သည်။
URL တွင်လမ်းကြောင်းအပိုင်းကို Extract လုပ်ရန် Parse_url function ကိုသုံးပါ, ပြီးနောက်ဖိုင်အမည်ကိုရယူရန် Basename ကို သုံးပါ။
ဖိုင်အမည်များကိုသဘာဝကျကျခွဲရန် strnatcasecmp ကို သုံးပါ။
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 ကိုအသုံးပြုခြင်းကိုသင်နားလည်ရန်ဤဆောင်းပါးသည်သင်အတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. မေးခွန်းများမေးပါ။