ဘာသာစကားမျိုးစုံအသုံးချပရိုဂရမ်များများရေးဆွဲသောအခါကျွန်ုပ်တို့သည်မကြာခဏနှိုင်းယှဉ်မှုများပြ issues နာများပါ 0 င်လေ့ရှိသည်။ PHP သည်ကြိုးများနှင့်နှိုင်းယှဉ်ရန်နည်းလမ်းများစွာကိုထောက်ပံ့ပေးပြီး strioll () function သည်အထူးသဖြင့်စိတ်ဝင်စားဖွယ်ဖြစ်သည်။ ဤဆောင်းပါးသည်ကွဲပြားခြားနားသောဒေသများဆက်တင်များအောက်တွင် strioll ၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုလေ့လာသုံးသပ်ပြီးသတ်သတ်မှတ်မှတ်သင်္ကေတများမှတစ်ဆင့်သရုပ်ဖော်သွားမည်ဖြစ်သည်။
strioll () သည် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ StrcMP နှင့်ဆင်တူသည့်ရလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။
0 င်သည် 0 နှစ်ခုသည် string နှစ်ခုသည်လက်ရှိဒေသတွင်တန်းတူဖြစ်ကြောင်းဖော်ပြရန်။
0 ထက်လျော့နည်းလာသည်ကိုဆိုလိုသည်မှာပထမ ဦး ဆုံး string ကိုဒုတိယမတိုင်မီအဆင့်သတ်မှတ်ထားသည်။
ပထမ ဦး ဆုံး string ကိုဒုတိယအကြိမ်ပြီးနောက်ကြောင်းညွှန်ပြရန် 0 ထက်ကြီးမြတ်ပြန်လာ။
StRCMP () , striproll () နှင့်မတူဘဲဇာတ်ကောင်များ၏ sorting sensitivity နှင့်အထူးဇာတ်ကောင်အချို့၏အပြောင်းအလဲများကဲ့သို့သောဒေသများစည်းမျဉ်းများကိုထည့်သွင်းစဉ်းစားလိမ့်မည်။
PHP တွင်လက်ရှိဒေသဆက်တင်ရန် setlocale () function ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:
setlocale(LC_COLLATE, 'en_US.UTF-8');
LC_C_COllate သည် string နှိုင်းယှဉ်ခြင်းနှင့် sorting ကိုလွှမ်းမိုးရန်အသုံးပြုသောအမျိုးအစားတစ်ခုဖြစ်သည်။ LC_TIMTTTIME , LC_MANETARS ကဲ့သို့သောအခြားအမျိုးအစားများစသည်တို့သည်အချိန်, ငွေကြေးနှင့်အခြားပုံစံများကိုသက်ရောက်သည်။
နှစ်နေရာ, ဂျာမန်နှင့်အင်္ဂလိပ်စကားများကိုဥပမာအဖြစ်ယူကြပါစို့။ STRCOLL ၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုကြည့်ကြပါစို့။
setlocale(LC_COLLATE, 'en_US.UTF-8');
echo strcoll("z", "?"); // ရလဒ်ရလဒ် A
setlocale(LC_COLLATE, 'de_DE.UTF-8');
echo strcoll("z", "?"); // ရလဒ်ရလဒ် B
အင်္ဂလိပ်ဘာသာဖြင့် "Z" သည် "" မတိုင်မီ "" မဟုတ်လား ", ဂျာမန်ဘာသာဖြင့်"? " Phonic အက်ခရာအဖြစ်မှတ်ယူပြီး "z" သို့မဟုတ် "a" အနီးတွင်ပင်ဖြစ်လိမ့်မည်။ ထို့ကြောင့် output ရလဒ်များ A နှင့် B တို့သည်ကွဲပြားနိုင်သည်။
အသုံးပြုသူ၏စာမျက်နှာများနှင့်အညီကျွန်ုပ်တို့ရွေးချယ်လိုသောအသံများဖြင့်အမည်များရှိသည်ဆိုပါစို့။ ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$names = ["Zoe", "?nne", "Anna", "émile"];
setlocale(LC_COLLATE, 'en_US.UTF-8');
usort($names, function($a, $b) {
return strcoll($a, $b);
});
print_r($names);
en_us.utf-8 အောက်မှာ sort ဖြစ်နိုင်သည်:
Array
(
[0] => Anna
[1] => émile
[2] => Zoe
[3] => ?nne
)
de_de.utf-8 နှင့်အတူအစားထိုးလျှင်:
setlocale(LC_COLLATE, 'de_DE.UTF-8');
ထိုအခါသင်ရလိမ့်မည်:
Array
(
[0] => Anna
[1] => ?nne
[2] => émile
[3] => Zoe
)
အချို့သောစနစ်များတွင်ရရှိနိုင်သည့်ဒေသတွင်အကန့်အသတ်ရှိနိုင်သည်။ အောက်ပါ command ကို command line တွင် အသုံးပြု. ကြည့်ရှုနိုင်သည်။
locale -a
သို့မဟုတ် PHP တွင် locale ကိုသတ်မှတ်ရန်ကြိုးစားပါ။ အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် Setlocale ၏ retlocale () ကိုအသုံးပြုပါ။
နေရာဒေသကိုမှန်ကန်စွာသတ်မှတ်ရန်သေချာစေရန် Setlocale ၏ပြန်လည်နေရာချထားခြင်းတန်ဖိုးကိုအမြဲတမ်းစစ်ဆေးပါ ။
သင်အသုံးပြုသူ input language ကို sensitive sort လုပ်ရန်လိုအပ်ပါက stricmp အစား striver ( ) ကို သေချာစွာသုံးပါ။
Cross-platform တချက်လွှာအတွက်လျှောက်လွှာတွင်လိုအပ်သောဒေသများကိုရှင်းရှင်းလင်းလင်းဖော်ပြရန်နှင့်ဤဆက်တင်များကို server configuration တွင်အထောက်အကူပြုရန်သေချာစေရန်အကြံပြုသည်။
strioll (sorting) ၏ sorting ရလဒ်များ () ရှေ့ပြေးမျက်နှာပြင်အတွက် (ထိုကဲ့သို့သောအဆက်အသွယ်စာရင်း, တိုင်းပြည်အမည်စသဖြင့်) အတွက်အသုံးပြုသည်ဆိုပါက,
အောက်ပါလိပ်စာကို အသုံးပြု. ကွဲပြားခြားနားသောဒေသများ၏ sorting အကျိုးသက်ရောက်မှုကိုသင်ကြိုးစားနိုင်ပါတယ်။
https://gitbox.net/locale-strcoll-demo.php
စာမျက်နှာသည်ကွဲပြားသောဒေသများရွေးချယ်ခြင်းနှင့်၎င်းတို့ကိုနှိုင်းယှဉ်ရန်ကြိုးအားလုံးအတွက် 0 င် ရောက်ခြင်းကိုသင်နှင့်နှိုင်းယှဉ်နိုင်သည်။
Strioll () သည်အလွန်အသုံးဝင်သော်လည်းမကြာခဏသတိမထားမိသောလုပ်ဆောင်ချက်ဖြစ်သည်။ Locale ကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းအားဖြင့်၎င်းသည် User Language Habits နှင့်ပိုမိုကိုက်ညီသော String နှိုင်းယှဉ်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။ ဘာသာစကားမျိုးစုံစီမံကိန်းများတွင် strioll () ကောင်းသောအသုံးပြုမှုကိုကောင်းစွာအသုံးပြုပါ။