PHP တွင် String နှိုင်းယှဉ်ခြင်းသည်အထူးသဖြင့်စာသားအချက်အလက်များကိုလုပ်ဆောင်သောအခါအထူးသဖြင့်ခွဲစိတ်မှုတစ်ခုဖြစ်သည်။ Standard String နှိုင်းယှဉ်ခြင်းလုပ်ဆောင်ချက်များသည်များသောအားဖြင့် stricmp () သို့မဟုတ် stricasecmp ကို သုံးလေ့ရှိသည်။ ၎င်းသည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီသောနှိုင်းယှဉ်ရလဒ်များကိုနှိုင်းယှဉ်ခြင်းရလဒ်များကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် "သဘာဝကျကျ" ဟူသောဝေါဟာရများအတွက်အသုံးပြုသော strnatcmp () function ကိုထောက်ပံ့ပေးသည်။ ဤနှိုင်းယှဉ်ချက်သည်ကျွန်ုပ်တို့၏နေ့စဉ်ဘ 0 ၌နံပါတ်များကို "2" မတိုင်မီ "10" မတိုင်မီ "2" မတိုင်မီ "2" ကဲ့သို့သော "2" ကဲ့သို့သော "2" စသည့် "2" စသည့်) နှင့်ဆင်တူသည်။
ဤဆောင်းပါးသည် strnatcmp () function ကို အသုံးပြု. အခြေခံအသုံးပြုမှုကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။ ဥပမာအားဖြင့်လူတိုင်းကိုပိုမိုနားလည်ရန်ကူညီလိမ့်မည်။
strnatcmp () function ကို string နှစ်ခုကိုနှိုင်းယှဉ်ရန်နှင့်သဘာဝ sorting စည်းမျဉ်းစည်းကမ်းများအရ၎င်းတို့အကြားခြားနားချက်ကိုပြန်ရန်အသုံးပြုသည်။ ရိုးရာ string နှိုင်းယှဉ်မှုများနှင့်မတူဘဲ strnatcmp () string ၏ကိန်းဂဏန်းအစိတ်အပိုင်းများကိုဇာတ်ကောင်များထက်နံပါတ်များအဖြစ်ယူမှတ်သည်။
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string1</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string2</span></span><span> )
</span></span>$ string1 : နှိုင်းယှဉ်ဖို့ပထမ ဦး ဆုံး string ကို။
$ string2 : နှိုင်းယှဉ်ရန်ဒုတိယ string ကို။
Value ကိုပြန်သွားပါ
$ string1 နှင့် $ string2 တန်းတူရှိပါက 0 return ။
အကယ်. $ string1 သည် ဒေါ်လာတစ်လျှောက် နည်းပါကအနှုတ်တန်ဖိုးကိုပြန်ပို့သည်။
အကယ်. $ string1 သည် $ string2 ထက်ကြီးပါကအပြုသဘောဆောင်သောတန်ဖိုးကိုပြန်လည်ရရှိခဲ့သည်။
stricmp () function သည် strings strings များကိုအက်ခရာများ၏ ASCII တန်ဖိုးနှင့်အညီတစ်ခုသာနှင့်သာနှိုင်းယှဉ်ထားသည် ။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် strings နှစ်ခုကို "10" နှင့် "2" ကိုနှိုင်းယှဉ်လျှင် -
StrcMP ("10") ကို အသုံးပြုသောအခါရလဒ်သည်ဆိုးကျိုးတစ်ခုဖြစ်သည် (1 "သည်" 2 "၏ ascii တန်ဖိုးထက်နည်းပါးသည်။
Strnatcmp ("10", "2", "2" ကို သုံးသောအခါရလဒ်သည်အပြုသဘောဆောင်သောတန်ဖိုးတစ်ခုဖြစ်သည်။
Strnatcmp () ၏အခြေခံအယူအဆသည်နံပါတ်များကိုနံပါတ်များအဖြစ်နှိုင်းယှဉ်ရန်, ၎င်းသည် string ၏ဂဏန်းအစိတ်အပိုင်းများကိုကိန်းဂဏန်းများအဖြစ်ပြောင်းလဲပြီးနံပါတ်၏အရွယ်အစားကိုနှိုင်းယှဉ်သည်။ ကိန်းဂဏန်းများမပါသောအစိတ်အပိုင်းများအတွက်၎င်းတို့သည်ဇာတ်ကောင်များ၏အမိန့်နှင့်နှိုင်းယှဉ်ထားဆဲဖြစ်သည်။
ဥပမာအားဖြင့်:
"IMG12" နှင့် "IMG2", strnatcmp () ကိုအရင်နှိုင်းယှဉ်သောအခါ "IMG12" နှင့် "IMGATCMP) ကိုနှိုင်းယှဉ်သောအခါ" IMG "အပိုင်း (img) ကိုနှိုင်းယှဉ်မည်။ ထို့နောက်ကိန်းဂဏန်းအပိုင်းကိုနှိုင်းယှဉ်မည်။ 12 ထက်ကြီးသည် 12 နှစ်ကတည်းကအပြုသဘောတန်ဖိုးကိုနောက်ဆုံးတွင်ပြန်လာသည်။
အောက်ဖော်ပြပါရိုးရှင်းသောကုဒ်နမူနာတစ်ခုမှာ strnatcmp ၏လက်တွေ့ကျသောအသုံးချခြင်းကိုပြသသည့်ရိုးရှင်းသောကုဒ်ပါ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"img12"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"img2"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> < </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$str1</span></span></span><span> is less than </span><span><span class="hljs-subst">$str2</span></span><span>\n";
} </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> > </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$str1</span></span></span><span> is greater than </span><span><span class="hljs-subst">$str2</span></span><span>\n";
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$str1</span></span></span><span> is equal to </span><span><span class="hljs-subst">$str2</span></span><span>\n";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ထုတ်လုပ်မှု -
<span><span>img12 </span><span><span class="hljs-keyword">is</span></span><span> greater than img2
</span></span>strnatcmp () သည်အခြေအနေများပါ 0 င်သည့်ကြိုးများပါ 0 င်သည့်ကြိုးများနှင့်ဆက်ဆံရာတွင်ဖြစ်သည့်အခြေအနေများအတွက်အလွန်သင့်လျော်သည်။ ဥပမာအားဖြင့်:
File Name Sorting: ဖိုင်အမည်ပါ 0 င်သည့်အခါ strnatcmp () ကို "file20" မတိုင်မီ "file2" ကဲ့သို့သောကျွန်ုပ်တို့၏ဘုံသဘာဝအမိန့်တွင် sort ပြုလုပ်နိုင်သည်။
ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ချက် - ဗားရှင်းနံပါတ်ကို string တစ်ခုအနေဖြင့်သိမ်းဆည်းထားလျှင် strnatcmp () သည် "1.10" နှင့် "1.2" ကဲ့သို့သောဗားရှင်းနံပါတ်များကိုမှန်ကန်စွာနှိုင်းယှဉ်နိုင်သည်။
strnatcmp () string နှိုင်းယှဉ်ချက်ကိုသာထောက်ပံ့သည်။ ထို့ကြောင့်သင်သည် Arrays သို့မဟုတ်အခြားအချက်အလက်အမျိုးအစားများကိုနှိုင်းယှဉ်ရန်လိုအပ်ပါက၎င်းကိုသင်ပထမ ဦး ဆုံး string တစ်ခုသို့ပြောင်းလဲရမည်။
strnatcmp () စာလုံးအကြီးအသေးဖြစ်ပါတယ်။ အကယ်. သင်သည်အမှုကိုလျစ်လျူရှုရန်လိုအပ်ပါက strnatcasecmp () ကို သုံးနိုင်သည်။ သို့သော် strnatcmp () နှင့်ဆင်တူသည့် strnatcasecmp () ကိုသုံးနိုင်သည်။
strnatcmp () : အမှုအရအထိခိုက်မခံတဲ့သဘာဝမျိုးနှိုင်းယှဉ်မှု။
strnatcasecmp () : အထက်နှင့်အောက်ပိုင်းနှင့်အသေးများ၏သဘာဝအကောင်းဆုံးနှိုင်းယှဉ်မှုကိုလျစ်လျူရှုပါ။
ဥပမာအားဖြင့်:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"Apple12"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"apple2"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strnatcmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>); </span><span><span class="hljs-comment">// output ကိုအနုတ်လက်ခဏာနံပါတ်,အကေြာင်းမှာ"A"ထက်နည်းသော"a"</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strnatcasecmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း0,အကေြာင်းမှာ忽略大小写后相等</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>strnatcmp () () သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည်နံပါတ်များပါ 0 င်သောကြိုးများကိုမှန်ကန်စွာလေ့လာနိုင်သည်။ ဖိုင်အမည်ကို Sorting, ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ခြင်းသို့မဟုတ်အခြားအလားတူအလုပ်များ, strnatcmp () သည် အလွန်အသုံးဝင်သည်။
Numbatcmp (Strnatcmp) ကိုစဉ်းစားရန်လိုအပ်သည့်ကြိုးများနှင့်ဆက်ဆံရာတွင်အခြေအနေများနှင့်ရင်ဆိုင်ရသောအခါအခြေအနေများကြုံတွေ့ရပါက, strnatcmp () သည်အကြံပြုထားသော option တစ်ခုဖြစ်သည်။