လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အသုံးပြုသူမှထည့်သွင်းထားသော string ကိုပုံမှန်ပြုလုပ်ရန် PHP ၏ strnatcmp function ကိုအသုံးပြုနည်း။

အသုံးပြုသူမှထည့်သွင်းထားသော string ကိုပုံမှန်ပြုလုပ်ရန် PHP ၏ strnatcmp function ကိုအသုံးပြုနည်း။

gitbox 2025-09-09

PHP တွင် strnatcmp သည် strnatcmp သည် "သဘာဝကျကျခွဲထားသည့်" ကိုနှိုင်းယှဉ်ရန်အသုံးပြုနိုင်သောအလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ သဘာဝ sorting သည်နံပါတ်များ၏အမှန်တကယ်အရွယ်အစားဖြင့်ခွဲခြားထားခြင်းဖြစ်သည်။ အထူးသဖြင့်အသုံးပြုသူ input ကိုနှိုင်းယှဉ်ဖို့လိုသည့်အခါနံပါတ်များပါ 0 င်သည့်ကြိုးများနှင့်ဆက်ဆံရာတွင်ဤချဉ်းကပ်မှုသည်အထူးသဖြင့်အသုံးဝင်သည်။ ဤဆောင်းပါးသည်အသုံးပြုသူမှ 0 င် ရောက်သော string ကိုစံသတ်မှတ်ရန်နှင့်၎င်း၏ application ဇာတ်လမ်းကိုပြသရန်ဥပမာအချို့ကိုအသုံးပြုရမည်ကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ strnatcmp function ကဘာလဲ။

StrnatcMP သည် PHP တွင်ကြိုးနှစ်ချောင်းကိုနှိုင်းယှဉ်ရန် function တစ်ခုဖြစ်သည်။ StrcMP ကဲ့သို့သောသာမန် string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်မတူဘဲ strnatcmp သည် နံပါတ်များ၏အရွယ်အစားကိုထည့်သွင်းစဉ်းစားသည်။ ဆိုလိုသည်မှာသဘာဝအားဖြင့် "10" သည်ပကတိနှိုင်းယှဉ်မှုထက် "2" ထက် သာ. ကြီးမြတ်မည်ဟုဆိုလိုသည်။

function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <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>
  • Return Value : string ၏နှိုင်းယှဉ်ချက်ကိုကိုယ်စားပြုသည့်ကိန်းဂဏန်းကိုပြန်ပို့ပါ။

    • Reward အနုတ်လက်ခဏာနံပါတ် - $ string1 သည် $ string2 ထက်နည်းသည်

    • အပြုသဘောဆောင်သောနံပါတ်ကိုပြန်ပို့ပါ။ ဆိုလိုသည်မှာ $ string1 သည် $ string2 ထက်ကြီးသည်

    • ပြန်လာ 0: ဆိုလိုသည်မှာ strings နှစ်ခုသည်တန်းတူဖြစ်သည်

2 ။ အဘယ်ကြောင့် strnatcmp လိုအပ်သနည်း။

ရိုးရာ String နှိုင်းယှဉ်ခြင်းလုပ်ငန်းများ ( STRCMP ကဲ့သို့သော) သည်နံပါတ်များပါ 0 င်သည့်ကြိုးများနှင့်နှိုင်းယှဉ်လျှင်ပင်ကိုယ်နှိတိုးလိုသောရလဒ်များထုတ်လုပ်နိုင်သည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strcmp</span></span><span>(</span><span><span class="hljs-string">'10'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span>); </span><span><span class="hljs-comment">// အပြုသဘောနံပါတ် output ကို</span></span><span>
</span></span>

ဤအချက်သည် 10 ထက် ကြီးသည်ဟုဆိုသည်, သို့သော်သဘာဝ sorting ၏အခြေအနေတွင်နံပါတ် 10 သည် 2 ပြီးနောက်ဖြစ်သင့်သည်။ Stranatcmp သည် ဤပြ problem နာကိုဖြေရှင်းနိုင်သည်။

 <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-string">'10'</span></span><span>, </span><span><span class="hljs-string">'2'</span></span><span>); </span><span><span class="hljs-comment">// output ကိုအနုတ်နံပါတ်,ညှစ် '10' ထက်နည်းသော '2'</span></span><span>
</span></span>

3 ။ စံသတ်မှတ်နှိုင်းယှဉ်မှုအတွက် strnatcmp ကို ဘယ်လိုသုံးရမလဲ။

သင်အသုံးပြုနေသောပုံစံ (ဖိုင်အမည်, ဗားရှင်းနံပါတ်သို့မဟုတ်နံပါတ်များပါ 0 င်သည့်အခြားကြိုးများပါ 0 င်သည့်ပုံစံများ) ထဲသို့ 0 င်ရောက်သောပုံစံကိုသင်လုပ်ဆောင်နေသည်ဆိုပါစို့။ strnatcmp ကို အသုံးပြုခြင်းသည်သင့်အားဤကြိုးများကိုသဘာဝ sorting အရကျိုးကြောင်းဆီလျော်စွာခွဲခြားရန်ခွင့်ပြုသည်။

ဥပမာ 1 - အသုံးပြုသူမှထည့်သွင်းထားသောဖိုင်အမည်များကိုသဘာဝကျကျခွဲပါ

 <span><span><span class="hljs-comment">// အသုံးပြုသူသည်အောက်ပါဖိုင်အမည်ကိုထည့်သွင်းထားသည်ဆိုပါစို့</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = [</span><span><span class="hljs-string">'file10.txt'</span></span><span>, </span><span><span class="hljs-string">'file2.txt'</span></span><span>, </span><span><span class="hljs-string">'file1.txt'</span></span><span>, </span><span><span class="hljs-string">'file20.txt'</span></span><span>];

</span><span><span class="hljs-comment">// အသုံးပြု usort နှင့် strnatcmp သဘာဝကျကျ sort ရန်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$files</span></span><span>, </span><span><span class="hljs-string">'strnatcmp'</span></span><span>);

</span><span><span class="hljs-comment">// sorted file name output ကို output</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

ရလဒ်ရလဒ် -

 <span><span>file1.txt
file2.txt
file10.txt
file20.txt
</span></span>

ဤဥပမာတွင် strnatcmp သည် ဖိုင်အမည်များကိုစာလုံးအရွယ်အစားများဖြင့်ခွဲခြားထားကြောင်းဇာတ်ကောင်များမဟုတ်ဘဲနံပါတ်များကိုခွဲခြားထားသည်။

ဥပမာ 2. အသုံးပြုသူများမှထည့်သွင်းထားသောဗားရှင်းနံပါတ်များကိုနှိုင်းယှဉ်ခြင်း

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

 <span><span><span class="hljs-variable">$version1</span></span><span> = </span><span><span class="hljs-string">'1.10.2'</span></span><span>;
</span><span><span class="hljs-variable">$version2</span></span><span> = </span><span><span class="hljs-string">'1.9.9'</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">$version1</span></span><span>, </span><span><span class="hljs-variable">$version2</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">$version1</span></span></span><span> is less than </span><span><span class="hljs-subst">$version2</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">$version1</span></span></span><span> is greater than </span><span><span class="hljs-subst">$version2</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">$version1</span></span></span><span> is equal to </span><span><span class="hljs-subst">$version2</span></span><span>\n";
}
</span></span>

ရလဒ်ရလဒ် -

 <span><span><span class="hljs-number">1.10</span></span><span><span class="hljs-number">.2</span></span><span> </span><span><span class="hljs-keyword">is</span></span><span> greater than </span><span><span class="hljs-number">1.9</span></span><span><span class="hljs-number">.9</span></span><span>
</span></span>

strnatcmp မှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဗားရှင်းနံပါတ်များကိုတိကျစွာနှိုင်းယှဉ်နိုင်သည်,

4 ။ strnatcmp ၏လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်

  • အသုံးပြုသူ input ကိုစစ်ဆေးခြင်း - အသုံးပြုသူများမှ 0 င်ရောက်သောကြိုးများကိုထုတ်ယူခြင်း, strnatcmp သည် ကြိုးများအရွယ်အစားနှင့်အညီသင့်အားကျိုးကြောင်းဆီလျော်စွာနှင့်သုံးစွဲသူအတွေ့အကြုံကိုတိုးတက်စေရန်သင့်အားကူညီနိုင်သည်။

  • Filename Sorting : strnatcmp သည် Filenames အစုတခုစီကိုစီရန်လိုအပ်သည့်အခါအထူးသဖြင့် filename တွင်ပါ 0 င်ပါက။

  • ဗားရှင်းနံပါတ်စီမံခန့်ခွဲမှု - ဆော့ဖ်ဝဲဗားရှင်းနံပါတ်များကိုစီမံခန့်ခွဲရန်လိုအပ်သည့်စနစ်များအတွက် severy များများအတွက် strnatcmp သည် ဗားရှင်းကိန်းဂဏန်းများကိုနှိုင်းယှဉ်ခြင်းထက်ဂဏန်းများ၏အရွယ်အစားကိုအခြေခံသည်။

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

StrnatcMP function သည်ကြိုးကြိုးများကိုသဘာဝကျကျစီနိုင်ပြီးနံပါတ်များပါ 0 င်သောကြိုးများကိုကိုင်တွယ်ရန်အထူးသဖြင့်သင့်လျော်သည်။ ၎င်းသည်လူသားတို့၏သဘာဝ sorting စည်းမျဉ်းများနှင့်အညီပုံမှန်အတိုင်းနှိုင်းယှဉ်ခြင်းလုပ်ဆောင်ချက်များထက်ပိုမိုကိုက်ညီသည်။ ဤဆောင်းပါး၏နိဒါန်းမှတစ်ဆင့် StrnatcMP ၏အားသာချက်များကိုလက်တွေ့ကျသော application များအရ,