လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ကွဲပြားခြားနားသောဒေသဆက်တင်များအောက်တွင် strioll ၏အပြုအမူအတွက်ခြားနားချက်

ကွဲပြားခြားနားသောဒေသဆက်တင်များအောက်တွင် strioll ၏အပြုအမူအတွက်ခြားနားချက်

gitbox 2025-05-30

ဘာသာစကားမျိုးစုံအသုံးချပရိုဂရမ်များများရေးဆွဲသောအခါကျွန်ုပ်တို့သည်မကြာခဏနှိုင်းယှဉ်မှုများပြ issues နာများပါ 0 င်လေ့ရှိသည်။ PHP သည်ကြိုးများနှင့်နှိုင်းယှဉ်ရန်နည်းလမ်းများစွာကိုထောက်ပံ့ပေးပြီး strioll () function သည်အထူးသဖြင့်စိတ်ဝင်စားဖွယ်ဖြစ်သည်။ ဤဆောင်းပါးသည်ကွဲပြားခြားနားသောဒေသများဆက်တင်များအောက်တွင် strioll ၏စွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုလေ့လာသုံးသပ်ပြီးသတ်သတ်မှတ်မှတ်သင်္ကေတများမှတစ်ဆင့်သရုပ်ဖော်သွားမည်ဖြစ်သည်။

1 ။ strioll ကဘာလဲ?

strioll () သည် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ StrcMP နှင့်ဆင်တူသည့်ရလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။

  • 0 င်သည် 0 နှစ်ခုသည် string နှစ်ခုသည်လက်ရှိဒေသတွင်တန်းတူဖြစ်ကြောင်းဖော်ပြရန်။

  • 0 ထက်လျော့နည်းလာသည်ကိုဆိုလိုသည်မှာပထမ ဦး ဆုံး string ကိုဒုတိယမတိုင်မီအဆင့်သတ်မှတ်ထားသည်။

  • ပထမ ဦး ဆုံး string ကိုဒုတိယအကြိမ်ပြီးနောက်ကြောင်းညွှန်ပြရန် 0 ထက်ကြီးမြတ်ပြန်လာ။

StRCMP () , striproll () နှင့်မတူဘဲဇာတ်ကောင်များ၏ sorting sensitivity နှင့်အထူးဇာတ်ကောင်အချို့၏အပြောင်းအလဲများကဲ့သို့သောဒေသများစည်းမျဉ်းများကိုထည့်သွင်းစဉ်းစားလိမ့်မည်။

2 ။ Locale သတ်မှတ်နည်း

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 တို့သည်ကွဲပြားနိုင်သည်။

4 ။ အမှန်တကယ်ကိစ္စတွင် - ဘာသာစကားမျိုးစုံ sorting

အသုံးပြုသူ၏စာမျက်နှာများနှင့်အညီကျွန်ုပ်တို့ရွေးချယ်လိုသောအသံများဖြင့်အမည်များရှိသည်ဆိုပါစို့။ ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 $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
)

5 ။ ရရှိနိုင်သည့်ဒေသတွင်ရရှိနိုင်သည့်ဒေသများရရှိရန်?

အချို့သောစနစ်များတွင်ရရှိနိုင်သည့်ဒေသတွင်အကန့်အသတ်ရှိနိုင်သည်။ အောက်ပါ command ကို command line တွင် အသုံးပြု. ကြည့်ရှုနိုင်သည်။

 locale -a

သို့မဟုတ် PHP တွင် locale ကိုသတ်မှတ်ရန်ကြိုးစားပါ။ အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် Setlocale ၏ retlocale () ကိုအသုံးပြုပါ။

vi ။ ဖွံ့ဖြိုးရေးအကြံပြုချက်များ

  1. နေရာဒေသကိုမှန်ကန်စွာသတ်မှတ်ရန်သေချာစေရန် Setlocale ၏ပြန်လည်နေရာချထားခြင်းတန်ဖိုးကိုအမြဲတမ်းစစ်ဆေးပါ

  2. သင်အသုံးပြုသူ input language ကို sensitive sort လုပ်ရန်လိုအပ်ပါက stricmp အစား striver ( ) ကို သေချာစွာသုံးပါ။

  3. Cross-platform တချက်လွှာအတွက်လျှောက်လွှာတွင်လိုအပ်သောဒေသများကိုရှင်းရှင်းလင်းလင်းဖော်ပြရန်နှင့်ဤဆက်တင်များကို server configuration တွင်အထောက်အကူပြုရန်သေချာစေရန်အကြံပြုသည်။

  4. strioll (sorting) ၏ sorting ရလဒ်များ () ရှေ့ပြေးမျက်နှာပြင်အတွက် (ထိုကဲ့သို့သောအဆက်အသွယ်စာရင်း, တိုင်းပြည်အမည်စသဖြင့်) အတွက်အသုံးပြုသည်ဆိုပါက,

7 ။ အွန်လိုင်းသရုပ်ပြခြင်းနှင့် debugging

အောက်ပါလိပ်စာကို အသုံးပြု. ကွဲပြားခြားနားသောဒေသများ၏ sorting အကျိုးသက်ရောက်မှုကိုသင်ကြိုးစားနိုင်ပါတယ်။

 https://gitbox.net/locale-strcoll-demo.php

စာမျက်နှာသည်ကွဲပြားသောဒေသများရွေးချယ်ခြင်းနှင့်၎င်းတို့ကိုနှိုင်းယှဉ်ရန်ကြိုးအားလုံးအတွက် 0 င် ရောက်ခြင်းကိုသင်နှင့်နှိုင်းယှဉ်နိုင်သည်။

ကောက်ချက်

Strioll () သည်အလွန်အသုံးဝင်သော်လည်းမကြာခဏသတိမထားမိသောလုပ်ဆောင်ချက်ဖြစ်သည်။ Locale ကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းအားဖြင့်၎င်းသည် User Language Habits နှင့်ပိုမိုကိုက်ညီသော String နှိုင်းယှဉ်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။ ဘာသာစကားမျိုးစုံစီမံကိန်းများတွင် strioll () ကောင်းသောအသုံးပြုမှုကိုကောင်းစွာအသုံးပြုပါ။