လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် strnatcmp function ၏အခြေခံအသုံးပြုမှုကားအဘယ်နည်း။ အသေးစိတ်ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဥပမာနိဒါန်း

PHP တွင် strnatcmp function ၏အခြေခံအသုံးပြုမှုကားအဘယ်နည်း။ အသေးစိတ်ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဥပမာနိဒါန်း

gitbox 2025-09-18

PHP တွင် String နှိုင်းယှဉ်ခြင်းသည်အထူးသဖြင့်စာသားအချက်အလက်များကိုလုပ်ဆောင်သောအခါအထူးသဖြင့်ခွဲစိတ်မှုတစ်ခုဖြစ်သည်။ Standard String နှိုင်းယှဉ်ခြင်းလုပ်ဆောင်ချက်များသည်များသောအားဖြင့် stricmp () သို့မဟုတ် stricasecmp ကို သုံးလေ့ရှိသည်။ ၎င်းသည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီသောနှိုင်းယှဉ်ရလဒ်များကိုနှိုင်းယှဉ်ခြင်းရလဒ်များကိုဖြစ်ပေါ်စေနိုင်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် "သဘာဝကျကျ" ဟူသောဝေါဟာရများအတွက်အသုံးပြုသော strnatcmp () function ကိုထောက်ပံ့ပေးသည်။ ဤနှိုင်းယှဉ်ချက်သည်ကျွန်ုပ်တို့၏နေ့စဉ်ဘ 0 ၌နံပါတ်များကို "2" မတိုင်မီ "10" မတိုင်မီ "2" မတိုင်မီ "2" ကဲ့သို့သော "2" ကဲ့သို့သော "2" စသည့် "2" စသည့်) နှင့်ဆင်တူသည်။

ဤဆောင်းပါးသည် strnatcmp () function ကို အသုံးပြု. အခြေခံအသုံးပြုမှုကိုအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။ ဥပမာအားဖြင့်လူတိုင်းကိုပိုမိုနားလည်ရန်ကူညီလိမ့်မည်။

1 ။ 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 ထက်ကြီးပါကအပြုသဘောဆောင်သောတန်ဖိုးကိုပြန်လည်ရရှိခဲ့သည်။

2 ။ strnatcmp () နှင့် strcmp အကြားခြားနားချက်

stricmp () function သည် strings strings များကိုအက်ခရာများ၏ ASCII တန်ဖိုးနှင့်အညီတစ်ခုသာနှင့်သာနှိုင်းယှဉ်ထားသည် ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် strings နှစ်ခုကို "10" နှင့် "2" ကိုနှိုင်းယှဉ်လျှင် -

  • StrcMP ("10") ကို အသုံးပြုသောအခါရလဒ်သည်ဆိုးကျိုးတစ်ခုဖြစ်သည် (1 "သည်" 2 "၏ ascii တန်ဖိုးထက်နည်းပါးသည်။

  • Strnatcmp ("10", "2", "2" ကို သုံးသောအခါရလဒ်သည်အပြုသဘောဆောင်သောတန်ဖိုးတစ်ခုဖြစ်သည်။

3 ။ strnatcmp () အလုပ်လုပ်ပုံ

Strnatcmp () ၏အခြေခံအယူအဆသည်နံပါတ်များကိုနံပါတ်များအဖြစ်နှိုင်းယှဉ်ရန်, ၎င်းသည် string ၏ဂဏန်းအစိတ်အပိုင်းများကိုကိန်းဂဏန်းများအဖြစ်ပြောင်းလဲပြီးနံပါတ်၏အရွယ်အစားကိုနှိုင်းယှဉ်သည်။ ကိန်းဂဏန်းများမပါသောအစိတ်အပိုင်းများအတွက်၎င်းတို့သည်ဇာတ်ကောင်များ၏အမိန့်နှင့်နှိုင်းယှဉ်ထားဆဲဖြစ်သည်။

ဥပမာအားဖြင့်:

  • "IMG12" နှင့် "IMG2", strnatcmp () ကိုအရင်နှိုင်းယှဉ်သောအခါ "IMG12" နှင့် "IMGATCMP) ကိုနှိုင်းယှဉ်သောအခါ" IMG "အပိုင်း (img) ကိုနှိုင်းယှဉ်မည်။ ထို့နောက်ကိန်းဂဏန်းအပိုင်းကိုနှိုင်းယှဉ်မည်။ 12 ထက်ကြီးသည် 12 နှစ်ကတည်းကအပြုသဘောတန်ဖိုးကိုနောက်ဆုံးတွင်ပြန်လာသည်။

4 ။ နမူနာကုဒ်

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

 <span><span><span class="hljs-meta">&lt;?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> &lt; </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> &gt; </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">?&gt;</span></span><span>
</span></span>

ထုတ်လုပ်မှု -

 <span><span>img12 </span><span><span class="hljs-keyword">is</span></span><span> greater than img2
</span></span>

5 ။ သက်ဆိုင်သောအခြေအနေများ

strnatcmp () သည်အခြေအနေများပါ 0 င်သည့်ကြိုးများပါ 0 င်သည့်ကြိုးများနှင့်ဆက်ဆံရာတွင်ဖြစ်သည့်အခြေအနေများအတွက်အလွန်သင့်လျော်သည်။ ဥပမာအားဖြင့်:

  • File Name Sorting: ဖိုင်အမည်ပါ 0 င်သည့်အခါ strnatcmp () ကို "file20" မတိုင်မီ "file2" ကဲ့သို့သောကျွန်ုပ်တို့၏ဘုံသဘာဝအမိန့်တွင် sort ပြုလုပ်နိုင်သည်။

  • ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ချက် - ဗားရှင်းနံပါတ်ကို string တစ်ခုအနေဖြင့်သိမ်းဆည်းထားလျှင် strnatcmp () သည် "1.10" နှင့် "1.2" ကဲ့သို့သောဗားရှင်းနံပါတ်များကိုမှန်ကန်စွာနှိုင်းယှဉ်နိုင်သည်။

6 ။ မှတ်စုဖို့အရာ

  • strnatcmp () string နှိုင်းယှဉ်ချက်ကိုသာထောက်ပံ့သည်။ ထို့ကြောင့်သင်သည် Arrays သို့မဟုတ်အခြားအချက်အလက်အမျိုးအစားများကိုနှိုင်းယှဉ်ရန်လိုအပ်ပါက၎င်းကိုသင်ပထမ ဦး ဆုံး string တစ်ခုသို့ပြောင်းလဲရမည်။

  • strnatcmp () စာလုံးအကြီးအသေးဖြစ်ပါတယ်။ အကယ်. သင်သည်အမှုကိုလျစ်လျူရှုရန်လိုအပ်ပါက strnatcasecmp () ကို သုံးနိုင်သည်။ သို့သော် strnatcmp () နှင့်ဆင်တူသည့် strnatcasecmp () ကိုသုံးနိုင်သည်။

7 ။ strnatcmp () နှင့် strnatcasecmp ၏နှိုင်းယှဉ်ခြင်း ()

  • strnatcmp () : အမှုအရအထိခိုက်မခံတဲ့သဘာဝမျိုးနှိုင်းယှဉ်မှု။

  • strnatcasecmp () : အထက်နှင့်အောက်ပိုင်းနှင့်အသေးများ၏သဘာဝအကောင်းဆုံးနှိုင်းယှဉ်မှုကိုလျစ်လျူရှုပါ။

ဥပမာအားဖြင့်:

 <span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>
</span></span>

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

strnatcmp () () သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည်နံပါတ်များပါ 0 င်သောကြိုးများကိုမှန်ကန်စွာလေ့လာနိုင်သည်။ ဖိုင်အမည်ကို Sorting, ဗားရှင်းနံပါတ်နှိုင်းယှဉ်ခြင်းသို့မဟုတ်အခြားအလားတူအလုပ်များ, strnatcmp () သည် အလွန်အသုံးဝင်သည်။

Numbatcmp (Strnatcmp) ကိုစဉ်းစားရန်လိုအပ်သည့်ကြိုးများနှင့်ဆက်ဆံရာတွင်အခြေအနေများနှင့်ရင်ဆိုင်ရသောအခါအခြေအနေများကြုံတွေ့ရပါက, strnatcmp () သည်အကြံပြုထားသော option တစ်ခုဖြစ်သည်။