လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_count_values ​​() function ကိုသုံးသောအခါတရုတ်ကြိုးများကိုကိုင်တွယ်ရန်ပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း။

array_count_values ​​() function ကိုသုံးသောအခါတရုတ်ကြိုးများကိုကိုင်တွယ်ရန်ပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်နည်း။

M66 2025-06-07

PHP တွင် array_count_values ​​() function () function ကို array ရှိတန်ဖိုးများအားလုံး၏ဖြစ်ပျက်မှုနှုန်းကိုတွက်ချက်ရန်အသုံးပြုသည်။ သို့သော်သင်သည်ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါတရုတ်ကြိုးများကိုကိုင်တွယ်ရန်ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါ, ဤဆောင်းပါးသည်ဤပြ problem နာကိုမည်သို့ဖြေရှင်းရမည်ကိုလေ့လာပြီးဖြေရှင်းနည်းများကိုလေ့လာပါမည်။

1 ။ ပြ problem နာခွဲခြမ်းစိတ်ဖြာ

Array_count_VARIT_VARIT_VARIT_VARITEUSS ၏အဓိကလုပ်ဆောင်ချက်သည် array တွင်ပေါ်လာသည့်ကွဲပြားခြားနားသောတန်ဖိုးများကိုပြန်လည်ရောက်ရှိရန်ဖြစ်သည်။ အင်္ဂလိပ်အက္ခရာများနှင့်ဆက်ဆံရာတွင်ဤလုပ်ဆောင်မှုသည်ကောင်းမွန်စွာအလုပ်လုပ်သည်။ သို့သော်တရုတ်ကြိုးများမှာမမျှော်လင့်သောအပြုအမူများရှိနိုင်သည်။ အကြောင်းပြချက်များသောအားဖြင့်ဇာတ်ကောင် encoding ပြ problem နာဖြစ်ပါတယ်။

PHP သည် default အားဖြင့်ကြိုးများပြုလုပ်ရန် ISO-8859-1 encoding ကိုအသုံးပြုသည်။ သို့သော်တရုတ်စာလုံးများကို UTF-8 ဖြင့် encoded သည်။ ကိုက်ညီမှုမရှိသော encoding ကြောင့် array_count_values ​​() သည် တရုတ်စာလုံးများကိုမှန်ကန်စွာမရေတွက်နိုင်ပါ။

2 ။ ဖြစ်ရပ်လေ့လာမှု

သင့်တွင်တရုတ်ကြိုးများပါ 0 င်သောခင်းကျင်းမှုတစ်ခုရှိသည်ဆိုပါစို့။

 <?php
$array = ['ပန်းသီး', 'ငှက်ပျောသီး', 'ပန်းသီး', 'အခွံပွလိမ္မော်သီး', 'ငှက်ပျောသီး', 'ပန်းသီး'];
print_r(array_count_values($array));
?>

မျှော်လင့်ထားသည့်ရလဒ်မှာ -

 Array
(
    [ပန်းသီး] => 3
    [ငှက်ပျောသီး] => 2
    [အခွံပွလိမ္မော်သီး] => 1
)

သို့သော်အချို့သောကိစ္စရပ်များတွင်သင်သည်မှားယွင်းသော output သို့မဟုတ် barbled code ကိုကြုံတွေ့ရနိုင်သည်။

3 ။ ဖြေရှင်းနည်း

ဤပြ problem နာကိုဖြေရှင်းရန်အောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။

3.1 ဇာတ်ကောင် mb_string extension ကို သုံး. ပြောင်းလဲခြင်း

တရုတ်ကြိုးကြိုးများကိုမှန်ကန်စွာပြုလုပ်နိုင်ရန်သေချာစေရန် MB_Convert_encoding () သို့မဟုတ် mb_strining () function ကိုသင်ပထမ ဦး ဆုံး အသုံးပြု. encoding ပြ problems နာများကိုရှောင်ရှားရန် string ကို string ကိုပြောင်းလဲရန်ပထမ ဦး ဆုံးအသုံးပြုနိုင်သည်။

ဒီမှာအဖြေတစ်ခုပါ။

 <?php
// အသုံးပြုရန်သေချာအောင်လုပ်ပါUTF-8ကုဒ်
$array = ['ပန်းသီး', 'ငှက်ပျောသီး', 'ပန်းသီး', 'အခွံပွလိမ္မော်သီး', 'ငှက်ပျောသီး', 'ပန်းသီး'];

// ကူးပြောင်းUTF-8ကုဒ်
$array = array_map(function($item) {
    return mb_convert_encoding($item, 'UTF-8', 'auto');
}, $array);

// အသုံးပြု array_count_values လုပ်ဆောင်ချက်
print_r(array_count_values($array));
?>

၎င်းသည်တရုတ်ကြိုးများကို UTF-8 encoding ကို အသုံးပြု. မကိုမာသော encoding ပြ problem နာကိုရှောင်ရှားရန်အသုံးပြုသည်။

3.2 ကြိုးမဲ့ကြိုးများ, နေရာများနှင့်အခြားမဟုတ်သောအခြားစာလုံးများကိုဖယ်ရှားခြင်း

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

 <?php
$array = ['ပန်းသီး', 'ငှက်ပျောသီး', 'ပန်းသီး', 'အခွံပွလိမ္မော်သီး', 'ငှက်ပျောသီး', 'ပန်းသီး'];

// တရုတ်မဟုတ်သောစာလုံးများကိုဖယ်ရှားပါ
$array = array_map(function($item) {
    return preg_replace('/[^\x{4e00}-\x{9fa5}]/u', '', $item);
}, $array);

print_r(array_count_values($array));
?>

3.3 Multibyte ဇာတ်ကောင်များကိုအသုံးပြုခြင်းဖြင့်ထောက်ပံ့သောလုပ်ဆောင်ချက်များကို

အကယ်. သင်သည်သင်၏ပတ် 0 န်းကျင်ရှိ Mbstring extension ကို install လုပ်ပြီးပါက MB_Strlen () ကဲ့သို့သော Multibyte strings function များကိုအသုံးပြုခြင်းသည်ရလဒ်ကောင်းများရနိုင်သည်။ Multibyte ဇာတ်ကောင်များ၏ဝိသေသလက္ခဏာများနှင့်ကိုက်ညီမှုရှိစေရန်ဤလုပ်ဆောင်ချက်များကိုသင်အသုံးပြုနိုင်သည်။

 <?php
$array = ['ပန်းသီး', 'ငှက်ပျောသီး', 'ပန်းသီး', 'အခွံပွလိမ္မော်သီး', 'ငှက်ပျောသီး', 'ပန်းသီး'];

// အသုံးပြု mb_strlen() အဆိုပါ string ကို၏အရှည်ဆုံးဖြတ်ရန်
$array = array_map(function($item) {
    return mb_convert_encoding($item, 'UTF-8', 'auto');
}, $array);

print_r(array_count_values($array));
?>

4 ။ အကျဉ်းချုပ်

PHP တွင်တရုတ်ကြိုးများကိုလုပ်ဆောင်ရန် array_count_VARITEUSE () ကို အသုံးပြုသောအခါဘုံပြ problem နာသည်ကိုက်ညီသည့်ဇာတ်ကောင် encoding ဖြစ်သည်။ ဤပြ problem နာကိုရှောင်ရှားရန်တရုတ်စာလုံးများကိုအောက်ပါအဆင့်များမှတဆင့်စနစ်တကျပြုလုပ်နိုင်ရန်သေချာစေနိုင်သည်။

  • utf-8 ကို သုံး. strings အားလုံးကို encoded နေကြသည်သေချာအောင်လုပ်ပါ။

  • ကြိုးများမလုပ်ဆောင်မီ, အက်ခရာ encoding ပြောင်းလဲခြင်းအတွက်သင့်လျော်သော function ကိုသုံးပါ။

  • တရုတ်စာလုံးများသာပါ 0 င်ရန်သာလက်မခံနိုင်သောစာလုံးများကိုစစ်ထုတ်ပါ။

အထက်ပါနည်းလမ်းအားဖြင့်, array_count_values ​​() တွင်တရုတ်ကြိုးများကိုကိုင်တွယ်ရန်ပြ problem နာကိုအောင်မြင်စွာဖြေရှင်းနိုင်သည်။