PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် string နှိုင်းယှဉ်ချက်သည်အသုံးအများဆုံးလုပ်ငန်းတစ်ခုဖြစ်သည်။ အထူးသဖြင့်အသုံးပြုသူ input ကိုကိုင်တွယ်ဖြေရှင်းခြင်း, ဖိုင်အမည် sorting လုပ်ခြင်းသို့မဟုတ်ရှာဖွေခြင်းလုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါ, strnatcasecmp function သည်ဤသဘာဝအမိန့်အတွက်အထူးဒီဇိုင်းပြုလုပ်ထားသောကိရိယာတစ်ခုဖြစ်သည်။
Strnatcasecmp သည် PHP မှကြိုးနှစ်ချောင်းကိုနှိုင်းယှဉ်ရန် PHP မှပါ 0 င်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏နှိုင်းယှဉ်ချက်နည်းလမ်းသည် "သဘာဝအစီအစဉ်" တွင်ရှိပြီးဖြစ်ရပ်မှန်အာရုံမခံစားနိုင်ပါ။ ဆိုလိုသည်မှာဥပမာအားဖြင့်ဤအစဉ်အမြဲနားလည်နိုင်သောအမိန့်တွင်၎င်းကိုနှိုင်းယှဉ်နိုင်သည်။
echo strnatcasecmp("image1.jpg", "Image10.jpg");
အထက်ပါကုဒ်သည် image1.jpg ထက် Image10.jpg ထက်နည်းသောကြောင့်အနှုတ်လက်ခဏာနံပါတ်တစ်ခုကိုညွှန်ပြလိမ့်မည်။
int strnatcasecmp(string $string1, string $string2)
ပြန်လာတန်ဖိုးမှာကိန်းတစ်ခုဖြစ်သည်။
<0 : string1 string2 ထက်လျော့နည်းသည်
= 0 : နှစ်ခု strings တန်းတူဖြစ်ကြသည်
> 0 : string1 string2 ထက်သာ။ ကြီးမြတ်သည်
strcasecmp သည် string အတွက်နံပါတ်များ၏အဓိပ္ပာယ်ကိုမခွဲခြားဘဲ strcasecmp သည်အက္ခရာများဖြင့်အက်ခရာဖြင့်အက္ခရာများဖြင့်အက်ခရာဖြင့်အက်ခရာဖြင့်အက်ခရာဖြင့်ဖော်ပြထားသည်။ Strnatcasecmp သည် "သဘာဝ sorting" ကိုအသုံးပြုသည်။ ဆိုလိုသည်မှာနံပါတ်များကိုတစ်ခုလုံးအဖြစ်သတ်မှတ်သည်။ ဥပမာအားဖြင့်:
var_dump(strcasecmp("file2.txt", "file10.txt")); // ပြန်လာ > 0
var_dump(strnatcasecmp("file2.txt", "file10.txt")); // ပြန်လာ < 0
၎င်းသည် strnatcasecmp ကို file name, version နံပါတ်များစသည့်နံပါတ်များနှင့်နှိုင်းယှဉ်ခြင်းအတွက်အထူးသဖြင့်သင့်လျော်စေသည်။
strnatcasecmp သည် ASCII အက္ခရာများကိုမှန်ကန်စွာကိုင်တွယ်သော်လည်းအပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များနှင့်အပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များနှင့်ပတ်သက်သောအပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များနှင့်သက်ဆိုင်သောအပြည်ပြည်ဆိုင်ရာပံ့ပိုးမှုမရှိပါ။ ဆိုလိုသည်မှာအချို့သော Multibyte ဇာတ်ကောင်များအတွက်၎င်းသည်မျှော်လင့်ထားသည့်အတိုင်းမပြုမူနိုင်ပါ။
ဥပမာအားဖြင့်:
echo strnatcasecmp("café", "CAFé");
ဤနှိုင်းယှဉ်ချက်သည် PHP ၏အခြေခံဇာတ်ကောင် encoding နှင့်ပြည်တွင်းအကောင်အထည်ဖော်မှုပေါ် မူတည်. ကြိုးနှစ်ချောင်းကိုမစဉ်းစားနိုင်ပါ။
အကယ်. သင်သည်အမှန်တကယ်နိုင်ငံတကာအပြည်ပြည်ဆိုင်ရာဘာသာစကားအထောက်အကူပြုသောအပြုအမူများကိုလိုအပ်ပါက PHP ၏ Intlt extension တွင် collator class ကိုသုံးနိုင်သည်။
$collator = new Collator('fr_FR');
echo $collator->compare("café", "CAFé"); // ထုတ်လုပ်ခြင်း 0,တန်းတူညီမျှမှုဖော်ပြသည်
Collator သည် နိုင်ငံတကာဇာတ်ကောင်များကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်နိုင်သည့်ဘာသာစကားများနှင့်ဒေသခံများကိုထောက်ပံ့သည်။
အသုံးပြုသူများသည် 0 ဘ်ဆိုဒ်တစ်ခုတွင်တင်ထားသောဖိုင်အမည်များကို 0 ဘ ် ဆိုဒ်တစ်ခုတွင်ရွေးချယ်လိုကြောင်း, အသုံးပြုသူများသည်ဖိုင်အမည်များကိုအမှုများဖြင့်တင်ပို့နိုင်ပြီးနံပါတ်များလည်းရှိသည်ဟုယူမှတ်သည်ဆိုပါစို့။
$files = ["image10.jpg", "Image2.jpg", "image1.JPG", "Image20.jpg"];
usort($files, function($a, $b) {
return strnatcasecmp($a, $b);
});
foreach ($files as $file) {
echo "<a href='https://gitbox.net/uploads/{$file}'>{$file}</a><br>";
}
output ရလဒ် -
image1.JPG
Image2.jpg
image10.jpg
Image20.jpg
ရလဒ်များကိုလူ့သဘာဝအလေ့အထများနှင့်ကိုက်ညီပြီးဖိုင်အမည်များကိုလျစ်လျူရှုကြောင်းကိုတွေ့မြင်နိုင်သည်။
strnatcasecmp သည် strings များကို "သဘာဝအစီအစဉ်" တွင် "သဘာဝအမိန့်" တွင် "သဘာဝအမိန့်" တွင်နှိုင်းယှဉ်ခြင်းအတွက်အစွမ်းထက်။ လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။
အထူးသဖြင့်ဖိုင်များ, တံဆိပ်များ, တံဆိပ်များ, ဗားရှင်းနံပါတ်များစသည်တို့ကဲ့သို့သောကြိုးများနှင့်အတူကြိုးများနှင့်အတူသင့်တော်သည်။
အပြည်ပြည်ဆိုင်ရာဇာတ်ကောင်များပါ 0 င ်သောနှိုင်းယှဉ်မှုများအတွက် strnatcasecmp သည် စံပြမဖြစ်နိုင်ပါ။
strnatcasecmp ၏အသုံးပြုမှုကိုကျွမ်းကျင်မှုသည်သင်အသုံးပြုသူ input ကိုပိုမိုလုပ်ဆောင်ရန်ကူညီနိုင်ပြီးယုတ္တိဗေဒကိုပိုမိုသဘာဝကျကျပြုလုပ်ခြင်းကိုပိုမိုသဘာဝကျကျပြုလုပ်ခြင်းကိုကူညီနိုင်ပြီးသင်၏ PHP applications များကိုပိုမိုစမတ်ကျပြီးအသုံး 0 င်သည်။