လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Krsort sorting စဉ်အတွင်း Associative Array အမိန့်ကိုမပျောက်ဆုံးခြင်းကိုရှောင်ရှားရန်

Krsort sorting စဉ်အတွင်း Associative Array အမိန့်ကိုမပျောက်ဆုံးခြင်းကိုရှောင်ရှားရန်

gitbox 2025-05-29

1 ။ Krsort ၏အခြေခံအပြုအမူ

Krsort ၏တရားဝင်အဓိပ္ပာယ်ဖွင့်ဆိုချက် -

 bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
  • function: restsely ကို retssely key name အားဖြင့် sortsely sort နှင့်သော့အမည်ကိုထိန်းသိမ်းထားသည်။

  • ပြန်လာတန်ဖိုး - sorting အောင်မြင်မှုရှိမရှိ။

  • မှတ်ချက် - အဓိကအကြောင်းရင်းများမှာတူညီနေဆဲဖြစ်သော်လည်း element များ၏အစဉ်အဆက်ကသော့ချက်အမည်များကိုပြောင်းပြန်နိုင်ရန်အတွက်စီစဉ်လိမ့်မည်။

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

 $array = [
    'b' => 2,
    'a' => 1,
    'c' => 3,
];

krsort($array);

print_r($array);

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

 Array
(
    [c] => 3
    [b] => 2
    [a] => 1
)

သင်မြင်နိုင်သည့်အတိုင်းအရေးပေါ်အခြေအနေကိုသော့ချက်အမည်များအရပြောင်းပြန်နိုင်ရန်အတွက်စီစဉ်ထားသည်။


2 ။ အဘယ်ကြောင့် "မူရင်းအစီအစဉ်ရှုံးသည်"

အချို့ဖြစ်ရပ်များတွင်ကျွန်ုပ်တို့သည်တစ်စိတ်တစ်ပိုင်းကိုတစ်စိတ်တစ်ပိုင်းရွေးချယ်ခြင်းသို့မဟုတ်အချို့သောဒြပ်စင်များကိုခွဲထုတ်လိုသည်သို့မဟုတ်အချို့သော ဒြပ်စင်များကို ခွဲခြမ်းစိတ်ဖြာခြင်းကိုဆက်လက်ထိန်းသိမ်းထားဆဲဖြစ်သည်။

ထို့အပြင် Key Name အမျိုးအစားသည်စံသတ်မှတ်ချက်မပြည့်မီပါက (strings keys များနှင့်ရောနှောထားသောသော့များနှင့်ရောနှောထားသောသော့များ) ကိုမရရှိပါက Krsort သည် မျှော်လင့်ထားသည့်အတိုင်းပြုမူမည်မဟုတ်ပါ။ နောက်အချက်တစ်ခုမှာသင့်တွင်သင်၏ခင်းကျင်းမှုတွင်တူညီသောသော့ချက်အမည်ရှိပါက (PHP တွင်ရှားပါးသည်) သို့မဟုတ်သော့ချက်အမည်မှာတူညီသည်ဖြစ်စေ,


3 ။ အမိန့်ဆုံးရှုံးခြင်းကိုရှောင်ရှားရန်ဖြေရှင်းချက်

1 ။ မူရင်းအမှာစာကိုသိမ်းရန် Auxilarily Array ကိုသုံးပါ

အကယ်. သင်သည် Elements အမှာစာများကိုတစ်စိတ်တစ်ပိုင်းထိန်းသိမ်းရန်လိုအပ်ပါကမူရင်းမှာယူမှုကိုပထမ ဦး စွာသိမ်းနိုင်သည်, ပြီးနောက်၎င်းကိုဤအမိန့်အရချိန်ညှိနိုင်သည်။

 $array = [
    'b' => 2,
    'a' => 1,
    'c' => 3,
];

// မူလအမိန့်ကိုသိမ်းပါ
$originalKeys = array_keys($array);

// ဉီးစီး krsort ရေှးချယ်
krsort($array);

// သငျသညျအချို့သောတိကျတဲ့အမိန့်ကိုစောင့်ရှောက်လိုလျှင်,မူရင်းအမိန့်အတွက်ပြန်လည်စီစဉ်
uksort($array, function($key1, $key2) use ($originalKeys) {
    $pos1 = array_search($key1, $originalKeys);
    $pos2 = array_search($key2, $originalKeys);
    return $pos1 - $pos2;
});

print_r($array);

အထက်ဖော်ပြပါဥပမာတွင်ပထမ ဦး ဆုံး Krsort နှင့်နောက်ပိုင်းတွင်တစ်စိတ်တစ်ပိုင်း sorting ၏လိုအပ်ချက်ကိုနားလည်ရန်မူလအမိန့်တွင်သော့ချက်အမိန့်ကိုပြန်လည်ပြင်ဆင်ရန် UKSARS ကို အသုံးပြုပါ။


2 ။ ထုံးစံ sorting function ကို

အကယ်. Krsort ၏ပုံမှန်ပြောင်းပြန် sorting ကိုသင်မကျေနပ်လျှင် UKSARS ကို သုံးနိုင်သည်။

 $array = [
    'b' => 2,
    'a' => 1,
    'c' => 3,
];

// 按键名逆序ရေှးချယ်,Associative Array ဖွဲ့စည်းပုံကိုထိန်းသိမ်းထားပါ
uksort($array, function($k1, $k2) {
    return strcmp($k2, $k1);  // ပြောင်းပြန်နှိုင်းယှဉ် string ကို
});

print_r($array);

၎င်းသည်သင့်အား sorting အပြုအမူကိုအပြည့်အဝထိန်းချုပ်ပေးသည်။


3 ။ အမိန့်ဒေတာတည်ဆောက်ပုံကိုအသုံးပြုပါ

အကယ်. စီးပွားရေးယုတ္တိဗေဒသည် "အမိန့်" အတွက်အလွန်မြင့်မားသောလိုအပ်ချက်များရှိပါကအမိန့်နှင့်သက်ဆိုင်သောအရာဝတ်ထုများကဲ့သို့သောအမိန့်သို့မဟုတ်နှစ်လမ်းသွားချိတ်ဆက်ထားသောစာရင်းများကဲ့သို့သောအဆောက်အအုံများနှင့်အဓိကအမည်များကိုအသုံးပြုရန်အကြံပြုသည်။


4 ။ နမူနာကုဒ်အကျဉ်းချုပ်

 <?php

// ဥပမာခင်းကျင်းခြင်း
$array = [
    'b' => 2,
    'a' => 1,
    'c' => 3,
];

// စီမံကိန်း1:krsort + uksortမူရင်းအမိန့်ကို restore
$originalKeys = array_keys($array);

krsort($array);

uksort($array, function($key1, $key2) use ($originalKeys) {
    $pos1 = array_search($key1, $originalKeys);
    $pos2 = array_search($key2, $originalKeys);
    return $pos1 - $pos2;
});

print_r($array);

// စီမံကိန်း2:uksort自定义键名逆序ရေှးချယ်
uksort($array, function($k1, $k2) {
    return strcmp($k2, $k1);
});

print_r($array);

?>

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

  • Krsort သည်သော့ချက်အမည်များအပေါ် အခြေခံ. ပြောင်းပြန်နိုင်ရန်အတွက်ပြောင်းပြန်နိုင်ရန်အတွက်ခွဲထားသည်။ ပုံမှန်အားဖြင့်ဒြပ်စင်၏အမိန့်ကိုပြောင်းလဲလိမ့်မည်, သို့သော်သော့အမည်များကိုဆက်လက်ထိန်းသိမ်းထားသည်။

  • "အမိန့်ကိုအမိန့်" သည်များသောအားဖြင့်သော့ချက်အမည်မှာမူလအမှာစာကိုဖုံးအုပ်ထားသောကြောင့်ဖြစ်သည်။

  • ဖြေရှင်းနည်းမှာမူရင်းအစီအစဉ်ကိုသိမ်းဆည်းရန်သို့မဟုတ် UKSARS ကို အသုံးပြု. UKSAR ကိုအသုံးပြုရန်သို့မဟုတ် UKSARS ကိုအသုံးပြုရန်ဖြစ်သည်။

  • ရှုပ်ထွေးသောပြ issues နာများကိုရှောင်ရှားရန်အခြားသောအခြေအနေများတွင်အခြားဒေတာအဆောက်အအုံများကိုစဉ်းစားပါ။

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