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

array_flip () အသိုက် Arrays ကိုမကိုင်တွယ်နိုင်သလော။ စုံစမ်းသည်

M66 2025-06-03

PHP တွင် Array_Flip () သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ရိုးရိုးလေးပြောရရင်ခင်းကျင်းတဲ့သော့တွေဟာတန်ဖိုးများဖြစ်လာပြီးတန်ဖိုးကသော့တွေဖြစ်လာလိမ့်မယ်။ သို့သော်သင်သည် array_flip ကို သုံးရန်ကြိုးစားပါကအသိုက်ထည့်သွင်းထားသောခင်းကျင်းမှုတစ်ခုပေါ်တွင်ခင်းကျင်းရန်ကြိုးစားပါက၎င်းသည်အမှားတစ်ခုကိုပစ်ချခြင်းသို့မဟုတ်မျှော်လင့်ထားသည့်အတိုင်းအလုပ်မလုပ်ကြောင်းသင်တွေ့လိမ့်မည်။ ယနေ့အဘယ်ကြောင့် array_flip () အသိုက် Array ကိုမကိုင်တွယ်နိုင်ကြောင်းလေ့လာကြည့်ရအောင်။

array_flip () အလုပ်လုပ်ပုံ

Array_flip () ၏အခြေခံ function သည် incray တစ်ခုတွင်သော့နှင့်တန်ဖိုးများကိုတွဲဖက်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်အောက်ပါကုဒ်ကိုစဉ်းစားပါ။

 $array = [
    "a" => "apple",
    "b" => "banana",
    "c" => "cherry"
];

$flipped = array_flip($array);
print_r($flipped);

output ရလဒ် -

 Array
(
    [apple] => a
    [banana] => b
    [cherry] => c
)

ဒီ output ကနေငါတို့ array_flip () array အတွက်သော့နှင့်တန်ဖိုးများကိုအောင်မြင်စွာဖလှယ်နိုင်ကြောင်းတွေ့မြင်နိုင်သည်။

အသိုက်ခင်း array ပြ issues နာများကိုကိုင်တွယ်

သို့သော်သင်သည်အသိုက်ခင်းကျင်းမှုကို array_flip () သို့သွားရန်ကြိုးစားသောအခါအခြေအနေသည်ရှုပ်ထွေးလာသည်။ ဥပမာအားဖြင့်အောက်ပါခင်းကျင်းမှုကိုစဉ်းစားပါ။

 $array = [
    "a" => ["apple", "orange"],
    "b" => ["banana", "grape"]
];

$flipped = array_flip($array);
print_r($flipped);

ဤကုဒ်သည်အမှားတစ်ခုချလိမ့်မည်။

 Warning: array_flip() expects parameter 1 to be array, string given in ...

ဤအမှားက array_flip () သည် အသိုက်ခင်းကျင်းမှုများကိုမကိုင်တွယ်နိုင်ကြောင်းဖော်ပြသည်။ အကြောင်းပြချက်မှာ array_flip () သည် ရှုထောင့်တစ်ရှုထောင့်များတပ်ဆင်ခြင်းကိုသာလုပ်ဆောင်နိုင်ပြီး၎င်း၏ရည်မှန်းချက်သည်ခင်းကျင်းမှု၏သော့နှင့်တန်ဖိုးများကိုလဲလှယ်ရန်ဖြစ်သည်။ Array တစ်ခု၏တန်ဖိုးသည်ခင်းကျင်းမှုတစ်ခုဖြစ်သော array_flip () သည် အသိုက်ခင်း array ကိုတန်ဖိုးမထားနိုင်ပါ။

အဘယ်ကြောင့်အသိုက်ခင်း array သော့အဖြစ်မသုံးနိုင်တာလဲ

PHP တွင်ခင်းကျင်းခြင်း၏သော့များသည်စကေးအမျိုးအစား (ဥပမာ, ကိန်းဂဏန်းတစ်ခု, တစ်ခု, PHP သည် Arrays များကိုသော့များအဖြစ်ခွင့်မပြုပါ။ ဘာဖြစ်လို့လဲဆိုတော့ Arrays သူတို့ကိုယ်သူတို့ရှုပ်ထွေးသောဒေတာအဆောက်အအုံများဖြစ်သောကြောင့်မှတ်ပုံတင်ခြင်းအတွက်တိုက်ရိုက်မသုံးနိုင်ပါ။ စင်စစ်အားဖြင့် (ဥပမာ - array, objects စသဖြင့်) မဆို Non-Scalar အမျိုးအစား (ဥပမာ array များ, အရာဝတ်ထုစသည်) အဖြစ်မသုံးနိုင်ပါ။

Array_Flip () သည်ခင်းကျင်းမှုတစ်ခုစီ၏တန်ဖိုးသည်စကေးတစ်ခုစီအတွက်စကေးတစ်ခုဖြစ်ရန်လိုအပ်သည်။ ထို့ကြောင့် Array ပါ 0 င်သော array တစ်ခုကို invertt လုပ်ရန်ကြိုးစားသောအခါ PHP သည်အမှားတစ်ခုကိုဖော်ပြသည်။

အဖေြ

သငျသညျအသိုက် inarrays ပါဝင်သောအခြေအနေများနှင့်အတူကိုင်တွယ်ရန်လိုအပ်ပါကစိတ်ကြိုက်ပြုပြင်ခြင်းယုတ္တိဗေဒဘာသာရေးရန်စဉ်းစားပါ။ ဥပမာအားဖြင့်, သင်သည်အသိုက်ခင်းကျင်းမှုများကိုပြန်လည်ထူထောင်နိုင်ပြီး၎င်းတွင်သော့ချက်တန်ဖိုးအတွဲများကိုထုတ်ယူနိုင်သည်။

 function array_flip_recursive($array) {
    $flipped = [];
    foreach ($array as $key => $value) {
        if (is_array($value)) {
            // တန်ဖိုးတစ်ခုခင်းကျင်းလျှင်,recursive အပြောင်းအလဲနဲ့
            $flipped = array_merge($flipped, array_flip_recursive($value));
        } else {
            $flipped[$value] = $key;
        }
    }
    return $flipped;
}

$array = [
    "a" => ["apple", "orange"],
    "b" => ["banana", "grape"]
];

$flipped = array_flip_recursive($array);
print_r($flipped);

အထက်ပါကုဒ်တွင် array_flip_Recursive () function သည်အသိုက်ထည့်သွင်းထားသော arrays များကိုပြန်လည်ပြုပြင်ခြင်းနှင့်အသိုက်ခင်းကျင်းမှု၏တန်ဖိုးကိုသော့ချက်သို့မှန်ကန်စွာ invertts ။

အကျဉ်းချုပ်

array_flip ()) အသိုက် inbray ကိုမကိုင်တွယ်နိုင်သည့်အကြောင်းအရင်းမှာ၎င်းသည်ရှုထောင့်တစ်ရှုထောင့်ခင်းကျင်းမှုများကိုသာလုပ်ဆောင်နိုင်ပြီးအသိုက် incrays ၏တန်ဖိုးသည် array အမျိုးအစားတစ်ခုဖြစ်ပြီးသော့များအဖြစ်အသုံးမပြုပါ။ ဤအခြေအနေကိုကိုင်တွယ်ရန်ကျွန်ုပ်တို့သည်အသိုက်ထည့်သွင်းထားသော array များကို recursive method များဖြင့်ကိုင်တွယ်နိုင်ပြီးတန်ဖိုးတစ်ခုစီကိုတရားဝင်သော့ချက်တစ်ခုအဖြစ်အသုံးပြုနိုင်သည်။ array_flip () ၏အကန့်အသတ်များနှင့်အကန့်အသတ်များကိုနားလည်ခြင်းသည်သင်အမှားအယွင်းများကိုရှောင်ရှားရန်နှင့်၎င်းကိုအသုံးပြုသောအခါပိုမိုထိရောက်သောကုဒ်ကိုရေးရန်ကူညီလိမ့်မည်။