PHP တွင် Natsort () function ကိုသဘာဝအမိန့်တွင်ခင်းကျင်းရန်အသုံးပြုသည်။ ၎င်း၏အဓိကအင်္ဂါရပ်သည်ခဲ sorting ထက်လူတို့၏သိမြင်မှုအလေ့အထများအရကြိုးများကိုစီရန်ဖြစ်သည်။ Natsort () သည် များသောအားဖြင့်အင်္ဂလိပ်အက္ခရာများအတွက်အကောင်းဆုံးဖြစ်သည်။
ဤဆောင်းပါးသည် Natsort () ကို အသုံးပြု. တရုတ်စာလုံးများကို ခွဲ. ဖြေရှင်းရန်နှင့်ဖြေရှင်းနည်းများကိုခွဲခြားသောအခါသင်ကြုံတွေ့ရမည့်ပြ problems နာများကိုလေ့လာပါလိမ့်မည်။
တရုတ်ဇာတ်ကောင်အက္ခရာစဉ်
Natsort () သည် အင်္ဂလိပ်စာများနှင့်ကွဲပြားခြားနားစွာ encodes encoded လုပ်ရန်ကြိုးစားသည် ။ ထို့ကြောင့် "Zhang" နှင့် "Li" နှင့်ဆင်တူသောတရုတ်စာလုံးများကိုခွဲထုတ်သည့်အခါပေါ်လာလိမ့်မည်။
တရုတ် pinyin အမိန့်ရှုပ်ထွေးဖြစ်ပါတယ်
Natsort () သည် တရုတ် Pinyin အမိန့်သို့မဟုတ်အခြားဘာသာစကား sorting စည်းမျဉ်းများကိုအလိုအလျောက်မစဉ်းစားပါ။ ဆိုလိုသည်မှာတရုတ်စာလုံးနှစ်ဖက်သည်သိသာထင်ရှားသည့်အမိန့်တွင်ရှိနေသေးရင်တောင် Natsort () တွင်ကွဲပြားခြားနားစွာပြုမူနိုင်သည်။ ဥပမာအားဖြင့် "Zhao" နှင့် "ငွေ" ကိုရှေ့နှင့် "Zhao" တွင် "ငွေ" အဖြစ်သတ်မှတ်နိုင်သည်။
တရုတ်စာလုံးများကိုမှန်ကန်စွာစီရန်, Natsort () သို့မဟုတ်အခြားရွေးချယ်စရာများကိုပိုမိုကောင်းမွန်စေရန်အောက်ပါနည်းလမ်းများကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
Collator သည် PHP မှပေးသော PHP မှပေးထားသောအတန်းတစ်ခုဖြစ်သည်။ ၎င်းသည်အထူးသနှင့်ဒေသများ (ဒေသများ) အရကြိုးများပြုလုပ်နိုင်သည်။ တရုတ်ဝန်းကျင်တွင်သင့်လျော်သောဒေသများအားသတ်မှတ်ခြင်းဖြင့် Pinyin မှခွဲထုတ်ခြင်း၏အကျိုးသက်ရောက်မှုကိုသင်ရရှိနိုင်သည်။ ဤတွင်တရုတ်အမျိုးအစားများအတွက် collator class ကိုအသုံးပြုခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$locale</span></span><span> = </span><span><span class="hljs-string">'zh_CN'</span></span><span>; </span><span><span class="hljs-comment">// တရုတ်ပတ်ဝန်းကျင်ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$collator</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Collator</span></span><span>(</span><span><span class="hljs-variable">$locale</span></span><span>);
</span><span><span class="hljs-comment">// တရုတ်ခင်းကျင်းမှုရှိတယ်ဆိုပါစို့</span></span><span>
</span><span><span class="hljs-variable">$names</span></span><span> = [</span><span><span class="hljs-string">"Zhang San"</span></span><span>, </span><span><span class="hljs-string">"li si"</span></span><span>, </span><span><span class="hljs-string">"ဝမ်ဝူ"</span></span><span>, </span><span><span class="hljs-string">"Zhao Liu"</span></span><span>, </span><span><span class="hljs-string">"Qian qi"</span></span><span>];
</span><span><span class="hljs-comment">// အသုံးပြု Collator ရေှးချယ်</span></span><span>
</span><span><span class="hljs-variable">$collator</span></span><span>-></span><span><span class="hljs-title function_ invoke__">asort</span></span><span>(</span><span><span class="hljs-variable">$names</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$names</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Collator သည် Unicode တန်ဖိုးများမျှသာမဟုတ်ဘဲ Pinyin Order အရခွဲခြားနိုင်သည်။
အကယ်. collator သည် တိကျတဲ့လိုအပ်ချက်တစ်ခုနှင့်မကိုက်ညီပါကသို့မဟုတ် sorting စည်းမျဉ်းစည်းကမ်းများကိုစိတ်ကြိုက်ပြုလုပ်ရန်လိုအပ်ပါက (သတ်သတ်မှတ်မှတ် pinyin သို့မဟုတ်အခြားအမိန့်အတိုင်း) ကိုသင်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။ Usort () function ကိုပေါင်းစပ်ပြီး, သင်ပြောင်းလွယ်ပြင်လွယ်တရုတ် arrays ကိုပြောင်းလွယ်ပြင်လွယ်နိုင်ပါတယ်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 自定义ရေှးချယ်函数,假设已知拼音或ရေှးချယ်规则</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">customSort</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$a</span></span></span><span>, </span><span><span class="hljs-variable">$b</span></span><span>) {
</span><span><span class="hljs-comment">// 根据拼音或其他规则进行ရေှးချယ်</span></span><span>
</span><span><span class="hljs-variable">$pinyin_a</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getPinyin</span></span><span>(</span><span><span class="hljs-variable">$a</span></span><span>); </span><span><span class="hljs-comment">// pinyin သို့ကူးပြောင်းသော function တစ်ခုရှိသည်ဆိုပါစို့</span></span><span>
</span><span><span class="hljs-variable">$pinyin_b</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getPinyin</span></span><span>(</span><span><span class="hljs-variable">$b</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-variable">$pinyin_a</span></span><span>, </span><span><span class="hljs-variable">$pinyin_b</span></span><span>);
}
</span><span><span class="hljs-comment">// အသုံးပြု自定义ရေှးချယ်函数</span></span><span>
</span><span><span class="hljs-variable">$names</span></span><span> = [</span><span><span class="hljs-string">"Zhang San"</span></span><span>, </span><span><span class="hljs-string">"li si"</span></span><span>, </span><span><span class="hljs-string">"ဝမ်ဝူ"</span></span><span>, </span><span><span class="hljs-string">"Zhao Liu"</span></span><span>, </span><span><span class="hljs-string">"Qian qi"</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$names</span></span><span>, </span><span><span class="hljs-string">'customSort'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$names</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် GetPinyin () သည်တရုတ်စာလုံးများကို pinyin သို့ပြောင်းလဲရန်အသုံးပြုသောမသိဘဲရမ်းမေးတဲ့ function တစ်ခုဖြစ်သည်။ ဤနည်းအားဖြင့်တရုတ်စာလုံးများကို Pinyin အရခွဲခြားနိုင်သည်။
Natsort () သည် ပုံမှန်အားဖြင့် Pinyin အမိန့် ကို ပုံမှန်အားဖြင့်မစဉ်းစားသော်လည်းအချို့သောကိစ္စရပ်များတွင်တရုတ်ကြိုးများကို Pinyin သို့ပထမ ဦး စွာပြောင်းလဲနိုင်သည် ။ ဤနည်းအားဖြင့်သင်သည်တရုတ်စာလုံးများကို Pinyin အမိန့်ဖြင့်ခွဲနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">require</span></span><span> </span><span><span class="hljs-string">'vendor/autoload.php'</span></span><span>;
</span><span><span class="hljs-keyword">use</span></span><span> </span><span><span class="hljs-title">Overtrue</span></span><span>\</span><span><span class="hljs-title">Pinyin</span></span><span>\</span><span><span class="hljs-title">Pinyin</span></span><span>;
</span><span><span class="hljs-variable">$pinyin</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Pinyin</span></span><span>();
</span><span><span class="hljs-comment">// တရုတ်ခင်းကျင်းမှုရှိတယ်ဆိုပါစို့</span></span><span>
</span><span><span class="hljs-variable">$names</span></span><span> = [</span><span><span class="hljs-string">"Zhang San"</span></span><span>, </span><span><span class="hljs-string">"li si"</span></span><span>, </span><span><span class="hljs-string">"ဝမ်ဝူ"</span></span><span>, </span><span><span class="hljs-string">"Zhao Liu"</span></span><span>, </span><span><span class="hljs-string">"Qian qi"</span></span><span>];
</span><span><span class="hljs-comment">// တရုတ်ကို Pinyin သို့ပြောင်းပါ</span></span><span>
</span><span><span class="hljs-variable">$names_pinyin</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$name</span></span><span>) </span><span><span class="hljs-keyword">use</span></span><span> ($</span><span><span class="hljs-title">pinyin</span></span><span>) {
</span><span><span class="hljs-title">return</span></span><span> $</span><span><span class="hljs-title">pinyin</span></span><span>-></span><span><span class="hljs-title">permalink</span></span><span>($</span><span><span class="hljs-title">name</span></span><span>);
}, </span><span><span class="hljs-variable">$names</span></span><span>);
</span><span><span class="hljs-comment">// အသုံးပြု natsort ရေှးချယ်拼音</span></span><span>
</span><span><span class="hljs-title function_ invoke__">natsort</span></span><span>(</span><span><span class="hljs-variable">$names_pinyin</span></span><span>);
</span><span><span class="hljs-comment">// 输出ရေှးချယ်后的中文</span></span><span>
</span><span><span class="hljs-variable">$sorted_names</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$names_pinyin</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-variable">$sorted_names</span></span><span>[] = </span><span><span class="hljs-variable">$names</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>];
}
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$sorted_names</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤတွင်ကျွန်ုပ်တို့သည်တရုတ်စာလုံးများကို pinyin သို့ပြောင်းလဲရန်နှင့် Pinyin မှတစ်ဆင့် pinyin မှတစ်ဆင့် sort to pinyin မှတစ်ဆင့် sort to pinyin မှတစ်ဆင့် Sypiness ကို Solyin မှကူးယူပါ။
Natsort () သည်အလွန်အစွမ်းထက်သောလုပ်ဆောင်မှုသည်အလွန်အစွမ်းထက်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန်သင်ရွေးချယ်နိုင်သည်။
Collator Class ကိုအသုံးပြုပြီးတရုတ် pinyin အရခွဲခြားနိုင်သည်။
sorting ယုတ္တိဗေဒကိုအပြည့်အဝထိန်းချုပ်မှုဖြင့်စိတ်ကြိုက် sorting လုပ်ဆောင်ချက်များကိုရေးပါ။
Natsort () နှင့် Pinyin ကူးပြောင်းခြင်းစာကြည့်တိုက်ကိုပေါင်းစပ်ပြီးတရုတ်ကို Pinyin သို့ပထမ ဦး စွာကူးယူပါ။
ကွဲပြားသောဖြေရှင်းနည်းများသည်မတူညီသောလိုအပ်ချက်များနှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်း, developer များကတရုတ်စာလုံးများကိုအမှန်တကယ်အခြေအနေများနှင့်အညီအသင့်တော်ဆုံးဖြေရှင်းနည်းကိုရွေးချယ်နိုင်သည်။