လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_flip () ကိုအသုံးပြုပြီး enum တန်ဖိုးများကိုကြွေးကြော်ရန်အလွန်ရိုးရှင်းပြောင်းရန်

array_flip () ကိုအသုံးပြုပြီး enum တန်ဖိုးများကိုကြွေးကြော်ရန်အလွန်ရိုးရှင်းပြောင်းရန်

M66 2025-06-03

နေ့စဉ် PPP ဖွံ့ဖြိုးတိုးတက်မှုတွင်အပြန်အလှန်အကျိုးသက်ရောက်မှုများအကြားအပြန်အလှန်ပြောင်းလဲခြင်းနှင့်မကြာခဏတွေ့ဆုံလေ့ရှိသည်။ ဥပမာအားဖြင့်, အမှာစာ status တစ်ခုခင်းကျင်း

 $statusMap = [
    0 => 'ပေးဆောင်ခံရဖို့',
    1 => 'ပေးဆောင်',
    2 => 'တင်ပို့သော',
    3 => 'ပြည့်စုံသော',
];

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

 function getStatusCode($label) {
    foreach ($statusMap as $code => $desc) {
        if ($desc === $label) {
            return $code;
        }
    }
    return null;
}

ဒါဟာနည်းနည်းရှည် - လေတိုက်ကြည့်ရှုသည်။ ယခုအချိန်တွင် PHP နှင့်ပါ 0 င်သော array_flip () function သည်အသုံးဝင်သည်။

Array_Flip () ?

Array_Flip () သည် PHP တွင် built-in function တစ်ခုဖြစ်သည်။

 array_flip(array $array): array

မှတ်စုများ

  • ခင်းကျင်းမှု၏တန်ဖိုးသည်ထူးခြားသောနှင့်စကေးတန်ဖိုးများ (ဥပမာ strings သို့မဟုတ် integers များကဲ့သို့သောသော့များအဖြစ်အသုံးပြုနိုင်သည်။

  • ထပ်တူတန်ဖိုးများရှိပါကအောက်ပါတို့သည်ယခင်ကထပ်ခါတလဲလဲရေးလိမ့်မည်။

array_flip ကို သုံးပါ Enum Value Inversion ကိုအကောင်အထည်ဖော်ရန်

Enum တန်ဖိုးများကိုလျောက်ပတ်စွာပြောင်းပြန်ပြောင်းရန်မည်သို့ကြည့်ရှုကြပါစို့။

 $statusMap = [
    0 => 'ပေးဆောင်ခံရဖို့',
    1 => 'ပေးဆောင်',
    2 => 'တင်ပို့သော',
    3 => 'ပြည့်စုံသော',
];

$labelToCodeMap = array_flip($statusMap);

echo $labelToCodeMap['တင်ပို့သော']; // ထုတ်လုပ်ခြင်း 2

ဒါဟာချက်ချင်းအတွက်အများကြီးပိုမိုရိုးရှင်းတဲ့လား? ၎င်းသည် array_flip () ကို "Labeel" မှ "Value" သို့ 1 ပုံရသည်။

လက်တွေ့အမှုကို: drop-down option ကိုတန်ဖိုးပြောင်းလဲခြင်း

သင့်တွင်အသုံးပြုသူကျား, မရေးရာရွေးချယ်စရာများစွာရှိသည်ဆိုပါစို့။

 $genderMap = [
    'M' => 'ယောကျ်ားဖြစ်သော',
    'F' => 'မိန်းမ',
    'O' => 'အခြား',
];

ပုံစံကိုတင်ပြသည့်အခါအသုံးပြုသူသည် "အမျိုးသမီး 'ကို ရွေးချယ်ပြီးသင် ' f ' သို့ပြန်သွားရန်နှင့်ဒေတာဘေ့စ်တွင်သိုလှောင်ရန်ကူးယူလိုသည်။

 $input = 'မိန်းမ';
$labelToValue = array_flip($genderMap);
$genderCode = $labelToValue[$input] ?? null;

if ($genderCode === null) {
    echo "တရားမဝင်ကျား, မတန်ဖိုး";
} else {
    // ၎င်းကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းသည်ဆိုပါစို့
    saveGenderToDB($genderCode);
}

code ကိုပိုမိုကျစ်လစ်သိပ်သည်းရုံသာမကယုတ္တိဗေဒသည်အလွန်ရှင်းရှင်းလင်းလင်းနှင့်နားလည်ရန်လွယ်ကူသည်။

အသုံးပြုခြင်းအတွက်သိကောင်းစရာများ - Cache Inverted Array

အကယ်. သင်သည် inverted array များကိုနေရာများစွာဖြင့်အသုံးပြုရန်လိုအပ်ပါကသင်၏စီမံကိန်းတွင်ဘုံနည်းလမ်းတစ်ခုကိုသင်သတ်မှတ်နိုင်သည်။

 function getFlippedMap(array $map): array {
    static $cache = [];

    $hash = md5(json_encode($map));
    if (!isset($cache[$hash])) {
        $cache[$hash] = array_flip($map);
    }

    return $cache[$hash];
}

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

မှတ်ချက် - တန်ဖိုးများသည်ထူးခြားရမည်

မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများသည်ထူးခြားသည်မဟုတ်လျှင် array_flip () သည် ယခင်သော့ကိုအလိုအလျောက်ထပ်ခါတလဲလဲရေးသားလိမ့်မည်ဟုသတိရပါ။

 $arr = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'apple',
];

print_r(array_flip($arr));

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [banana] => b
    [apple] => c // 'a' ဖုံးထားသော
)

Enum တန်ဖိုးများကိုကိုင်တွယ်သောအခါ၎င်းသည်အမှားများကိုဖြစ်ပေါ်စေနိုင်သည်,

အကျဉ်းချုပ်

array_flip () သည်သေးငယ်သော်လည်းအလွန်လက်တွေ့ကျသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းမှတစ်ဆင့် PHP code ကိုပိုမိုတိကျစွာဖြည့်ဆည်းပေးနိုင်ပြီးဖတ်ရန်နှင့်အမှားအယွင်းများနည်းသည်။ နောက်တစ်ခါသင်ကွင်းဆက်တစ်ခုရေးရန်သင် နှင့် ပတ်သက်. သင်လည်းစဉ်းစားမိနိုင်သည်။