PHP တွင် strnatcasecmp function နှင့် array_multisort function ကိုနှစ် ဦး စလုံးသည်အရေးကြီးသောအခန်းကဏ် play မှပါ 0 င်နိုင်သည်။ strnatcasecmp function ကိုသဘာဝ sorting အတွက်အသုံးပြုသည် (i.e. ၏အရွယ်အစားအရွယ်အစား, စာသားအရွယ်အစား, စာသား sorting မဟုတ်ပါ) နှင့် array_multisort က ကျွန်တော်တို့ကိုလယ်ကွက်မျိုးစုံကိုခွဲခြားရန်ခွင့်ပြုသည်။ ကွက်လပ်မျိုးစုံမျိုးကွဲကိုကျွန်ုပ်တို့မျိုးပြုလုပ်ရန်လိုအပ်သည့်အခါကျွန်ုပ်တို့သည်နယ်ပယ်များစွာကိုအလွယ်တကူအကောင်အထည်ဖော်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုပေါင်းစပ်မှုကိုအသုံးပြုနိုင်သည်။
Strnatcasecmp function သည် "သဘာဝ" sorting ကိုလျစ်လျူရှုခြင်းကိုပြုလုပ်သောကြိုးနှစ်ချောင်းနှင့်နှိုင်းယှဉ်သော function တစ်ခုဖြစ်သည်။ သဘာဝအရအမျိုးအစားခွဲခြားခြင်းဆိုသည်မှာ string ၏ကိန်းဂဏန်းအမိန့်ကိုရွေးချယ်ခြင်းကိုရည်ညွှန်းသည်။
$first = 'file10.txt';
$second = 'file2.txt';
if (strnatcasecmp($first, $second) < 0) {
echo "$first အတွက်အဆင့် $second ရေှ့";
} else {
echo "$second အတွက်အဆင့် $first ရေှ့";
}
array_multisort သည် PHP မှပေးသောအားကောင်းသော function တစ်ခုဖြစ်သည်။ Arrays မျိုးစုံကိုဖြတ်သန်းခြင်းနှင့်၎င်းတို့၏သက်ဆိုင်ရာ sorting အမိန့် parameters တွေကိုဖြတ်သန်းခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အချက်အလက်များကိုအခြေအနေများစွာဖြင့်ဖြေရှင်းနိုင်သည်။
$array1 = [3, 1, 4, 2];
$array2 = ['d', 'b', 'a', 'c'];
array_multisort($array1, SORT_ASC, $array2, SORT_DESC);
print_r($array1);
print_r($array2);
ကျွန်ုပ်တို့တွင်အချက်အလက်အစုတခုရှိသည်ဆိုပါစို့, ပစ္စည်းတစ်ခုစီတွင်ကွက်လပ်မျိုးစုံ (အမည်, နံပါတ်စသည်တို့) ပါ 0 င်သည်။ ဤကိစ္စတွင်ကျွန်ုပ်တို့အောင်မြင်ရန် Strnatcasecmp နှင့် array_multisort ကို သုံးနိုင်သည်။
ကျွန်ုပ်တို့တွင် filenames များနှင့်ဖိုင်နံပါတ်များပါ 0 င်သောနေရာတစ်ခုရှိပြီးဖိုင်အမည်များနှင့်ဖိုင်အမည်များဖြင့်ခွဲထားရန်လိုအပ်သည်ဆိုပါစို့။
<?php
// ဖိုင်ဒေတာကိုတုပ
$files = [
['name' => 'file2.txt', 'id' => '10'],
['name' => 'file10.txt', 'id' => '5'],
['name' => 'file1.txt', 'id' => '20'],
['name' => 'file3.txt', 'id' => '10'],
];
// ဖိုင်နံပါတ်နှင့်ဖိုင်အမည်ကိုထုတ်ယူပါ
$ids = array_column($files, 'id');
$names = array_column($files, 'name');
// အသုံးပြု strnatcasecmp သဘာဝ sorting လုပ်ပါ
array_multisort($ids, SORT_ASC, $names, SORT_ASC, array_map('strnatcasecmp', $names, $names), $files);
// Print Sorted ရလဒ်များ
print_r($files);
?>
Extract Fields : ID နှင့် Name Fields ကို extract လုပ်ရန် array_column ကို အသုံးပြုသည်။
Sort : array_multisort မှအစဉ်အချီ id ကို id field ကိုပထမ ဦး ဆုံး sort လုပ်ပါ, ပြီးနောက် strnatcasecmp မှ name field ကို sort လုပ်ပါ။
output ရလဒ် - sorted ခင်းကျင်းကို id နှင့် name ၏သဘာဝအမိန့်အရခွဲခြားလိမ့်မည်။
အကယ်. သင် sorting လုပ်ငန်းစဉ်အတွင်း URL နှင့်သက်ဆိုင်သောအကြောင်းအရာများကိုလုပ်ဆောင်ရန်လိုအပ်ပါက GitBox.net ဖြင့် domain name ကိုအစားထိုးလိုပါက URL ကိုခွဲထုတ်ခြင်းမပြုမီ URL ကိုလုပ်ဆောင်နိုင်သည်။
ကျွန်ုပ်တို့တွင် URL လိပ်စာများစွာပါ 0 င်သည့်အောက်ပါခင်းကျင်းမှုရှိသည်ဆိုပါစို့။
<?php
$urls = [
'https://example.com/page1',
'https://testsite.com/page2',
'https://example.com/page3',
'https://gitbox.net/page4',
];
// အသုံးပြု str_replace သေတမ်းစာ URL Domain Name ကိုအစားထိုးပါ gitbox.net
$updatedUrls = array_map(function($url) {
return preg_replace('/https?:\/\/([^\/]+)/', 'https://gitbox.net', $url);
}, $urls);
// ပုံနှိပ်ထုတ်ဝေ Print URLs
print_r($updatedUrls);
?>
URL တွင် domain အပိုင်းနှင့်ကိုက်ညီရန်နှင့် GitBox.net နှင့်အစားထိုးရန် Preg_replace ကို သုံးပါ။
array_map တစ်ခုချင်းစီအတွက်ဤအစားထိုးမှုကိုလုပ်ဆောင်သည်။
strnatcasecmp နှင့် array_multisort ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွက်လပ်မျိုးစုံ၏သဘာဝအစဉ်အလာကိုအလွယ်တကူလုပ်ဆောင်နိုင်ကြသည်။ PHP မှပေးသော string processing function များကို အသုံးပြု. URL တွင် domain name ကိုကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်အညီအလွယ်တကူအစားထိုးနိုင်သည်။ ဒီဆောင်းပါးကမင်းကိုအထောက်အကူပြုမယ်လို့မျှော်လင့်ပါတယ်။