ဖွံ့ဖြိုးရေးစဉ်အတွင်းကျွန်ုပ်တို့သည်ကြိုးတစ်ချောင်းစီကိုစီရန်လိုအပ်သည်။ ရိုးရာ sorting နည်းလမ်းများသည်အမိန့်အတွက်ကြိုးများကိုအသုံးပြုပြီးတခါတရံတွင် "သဘာဝ sorting" စည်းမျဉ်းကိုအညီ, PHP သည်ကျွန်ုပ်တို့အားသဘာဝ sorting ကိုအကောင်အထည်ဖော်ရန်အလွန်အသုံးဝင်သော function strnatcmp () ကိုထောက်ပံ့ပေးသည်။
National Sorting ဆိုတဲ့နာမည်ကဆိုတဲ့အဆိုအရလူတွေကိုသမားရိုးကျနားလည်မှုအရဒေတာကို sorting ကိုရည်ညွှန်းတယ်။ ဥပမာအားဖြင့်ဖိုင်အမည်များကို sorting လုပ်နေစဉ် "file10" ကို "File2" နောက်မှ "file2" နောက်မှ "file2" ကိုနောက်လိုက်သင့်သည်။ ရိုးရာအဘိဓာန်များအလိုက်ရှာဖွေခြင်းစည်းမျဉ်းစည်းကမ်းများသည် "file20" ကို "file20" သည် "1" ထက်နည်းသောကြောင့် "1" သည် "2" ထက်နည်းသောကြောင့်သဘာဝ sorting ကိုကိန်းဂဏန်းအရွယ်အစားဖြင့်ခွဲထားလိမ့်မည်။
PHP ၏ strnatcmp () function သည် stries နှစ်ခုကိုနှိုင်းယှဉ်ရန်အတွက်သဘာဝ sorting function ဖြစ်သည်။ ၎င်းသည် strcmp ()) နှင့်ဆင်တူသည်, သို့သော် strnatcmp () သည် string ၏အစိတ်အပိုင်းများကိုပိုမိုနားလည်သဘောပေါက်ခြင်း,
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">$str1</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span> )
</span></span>$ str1 နှင့် $ str2 - ဤ parametersced နှစ်ခုသည်နှိုင်းယှဉ်ရန်လိုအပ်သည့်ကြိုးနှစ်ချောင်းဖြစ်သည်။
ပြန်လာတန်ဖိုး - $ str1 ကို $ str2 မတိုင်မီအဆင့်သတ်မှတ်ထားပါက၎င်းသည်အနုတ်လက်ခဏာကိန်းတစ်ခုရရှိစေသည်။ အကယ်. $ str1 သည် ဒေါ်လာ str2 နှင့်ညီသည်ဆိုပါက 0 င်သည် 0; $ str1 ကို ဒေါ်လာ str2 ပြီးနောက်အဆင့်သတ်မှတ်ထားပါက၎င်းသည်အပြုသဘောဆောင်သောကိန်းတစ်ခုရရှိစေသည်။
ရိုးရာ string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များနှင့်မတူဘဲ strnatcmp () သည် ဂဏန်းအစိတ်အပိုင်းများကို string ထဲ၌ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်၎င်းတို့အားအမှန်တကယ်ကိန်းဂဏန်းအရွယ်အစားပေါ်မူတည်သည်။ နှိုင်းယှဉ်ရလဒ်များကိုစိတ်ပိုင်းဖြတ်သည်အထိကြိုးတစ်ချောင်းစီကိုတစ်ခုစီဖြင့်နှိုင်းယှဉ်ထားသည်။
ဥပမာအားဖြင့် "File10" နှင့် "File2" နှင့် "File2" , strnatcmp () strnatcmp ကိုနှိုင်းယှဉ်သောအခါ အက် ခရာအပိုင်းကိုပထမအကြိမ်နှိုင်းယှဉ်ခြင်းနှင့်နံပါတ်အပိုင်း 10 နှင့် 2 ကို နှိုင်းယှဉ်ကြည့်ပါ။ 10 ထက် ကြီးသည်, "File10" ကို "file2" နောက်တွင်ရှိသည်။
ကျွန်ုပ်တို့သည် strnatcmp () ကို သုံးနိုင်သည်။ ဖိုင်အမည်များကိုခွဲခြားရန်ကုဒ်နံပါတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// sorted ခံရဖို့ကြိုးများခင်းကျင်း</span></span><span>
</span><span><span class="hljs-variable">$fileNames</span></span><span> = [</span><span><span class="hljs-string">'file2.txt'</span></span><span>, </span><span><span class="hljs-string">'file10.txt'</span></span><span>, </span><span><span class="hljs-string">'file1.txt'</span></span><span>, </span><span><span class="hljs-string">'file12.txt'</span></span><span>, </span><span><span class="hljs-string">'file11.txt'</span></span><span>];
</span><span><span class="hljs-comment">// အသုံးပြုusort()ပေါင်းစပ်ထားသောstrnatcmp()သဘာဝ sorting လုပ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$fileNames</span></span><span>, </span><span><span class="hljs-string">'strnatcmp'</span></span><span>);
</span><span><span class="hljs-comment">// output ကို sorted ရလဒ်များ</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$fileNames</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> . PHP_EOL;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ရလဒ်ရလဒ် -
<span><span>file1.txt
file2.txt
file10.txt
file11.txt
file12.txt
</span></span>ဤဥပမာတွင်ကျွန်ုပ်တို့သည်ဖိုင်အမည်များပါ 0 င်သော array တစ်ခုဖန်တီးပြီး abryort () function ကိုသုံးပါ။ အဆိုပါ sorted arrays ကျနော်တို့မျှော်လင့်ထားသည့်အမိန့်နှင့်အညီနေကြသည်နှင့်ကိန်းဂဏန်းအစိတ်အပိုင်းများကိုအရွယ်အစားစီစဉ်ထားသည်။
strnatcmp () တွင် PHP သည် strnatcmp () function နှင့်ဆင်တူသည့် strnatcasecmp () သည် strnatcasecmp () ကိုထောက်ပံ့ပေးသည်။
ဥပမာ -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 忽略大小写သဘာဝ sorting လုပ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$fileNames</span></span><span> = [</span><span><span class="hljs-string">'File2.txt'</span></span><span>, </span><span><span class="hljs-string">'file10.txt'</span></span><span>, </span><span><span class="hljs-string">'File1.txt'</span></span><span>, </span><span><span class="hljs-string">'file12.txt'</span></span><span>, </span><span><span class="hljs-string">'file11.txt'</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">usort</span></span><span>(</span><span><span class="hljs-variable">$fileNames</span></span><span>, </span><span><span class="hljs-string">'strnatcasecmp'</span></span><span>);
</span><span><span class="hljs-comment">// output ကို sorted ရလဒ်များ</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$fileNames</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> . PHP_EOL;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ရလဒ်ရလဒ် -
<span><span>File1.txt
File2.txt
file10.txt
file11.txt
file12.txt
</span></span>Strnatcmp () နှင့် strnatcasecmp ကို အသုံးပြုခြင်းဖြင့်ကျွန်ုပ်တို့သည်နံပါတ်များပါ 0 င်သောကြိုးများကိုအလွယ်တကူပြုလုပ်နိုင်သည်, ဤလုပ်ဆောင်ချက်များသည် File Name Sorting, Version Note နှိုင်းယှဉ်ခြင်းစသည့်အခြေအနေများအတွက်အလွန်သင့်လျော်သည်။ ၎င်းသည်သဘာဝ sorting လိုအပ်သည်။
ဤဆောင်းပါးသည် PHP ရှိသဘာဝ sorting လုပ်ဆောင်ချက်များနှင့်၎င်းတို့၏လျှောက်လွှာများကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုနားလည်ရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။