လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Array_flip () ဒေတာဆုံးရှုံးရတာဘာကြောင့်လဲ။ ထပ်တူ parsing တန်ဖိုးများကြောင့်ဖြစ်ရတဲ့ပြနာတွေ

Array_flip () ဒေတာဆုံးရှုံးရတာဘာကြောင့်လဲ။ ထပ်တူ parsing တန်ဖိုးများကြောင့်ဖြစ်ရတဲ့ပြနာတွေ

M66 2025-05-14

PHP ပရိုဂရမ်တွင် Array_Flip () သည်များသောအားဖြင့်ခင်းကျင်းခြင်း၏သော့နှင့်တန်ဖိုးများကိုအတွဲများနှင့်တန်ဖိုးများကိုတွဲဖက်နိုင်သည့်အသုံးများသော function တစ်ခုဖြစ်သည်။ သို့သော် developer များစွာသည်အထူးသဖြင့်ခင်းကျင်းမှုတွင်တန်ဖိုးများရှိသည့်အခါ "ဒေတာဆုံးရှုံးမှု" ၏ပြ problem နာကိုကြုံတွေ့ရနိုင်သည်။ ဒီတော့ဘာဖြစ်နေတာလဲ ဤဆောင်းပါးသည် array_flip ၏အပြုအမူကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ array_flip ()?

Array_Flip () သည် PHP တွင် built-in array function တစ်ခုဖြစ်သည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_flip(array $array): array

၎င်း၏ function သည် input array ရှိသော့နှင့်တန်ဖိုးတစ်ခုစီကိုနှိုင်းယှဉ်ရန်ဖြစ်သည်။ မူလတန်ဖိုးသည်သော့အသစ်ဖြစ်လာပြီးမူရင်းသော့သည်တန်ဖိုးအသစ်ဖြစ်လာသည်။

ဥပမာ -

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

$result = array_flip($input);

print_r($result);

output ကို:

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

မည်သည့်ပြ problems နာမျှမရှိဘဲသော့များနှင့်တန်ဖိုးများကိုအောင်မြင်စွာအပြန်အလှန်ပြောဆိုနိုင်ကြောင်းမြင်တွေ့နိုင်သည်။

2 ။ ပြ the နာကိုဖြစ်ပေါ်လာသည်။ Duplicate တန်ဖိုးများ

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

ဥပမာတစ်ခုကိုကြည့်ရအောင်။

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

$result = array_flip($input);

print_r($result);

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

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

ဒီနေရာမှာအရေးကြီးတဲ့အသေးစိတ်အချက်အလက်တွေရှိတယ်။ Apple က A နဲ့ C စံချိန်တွေဖြစ်တယ်, ဒါပေမယ့်အဆုံးမှာတော့ C => Apple ရဲ့စုံတွဲတစ်တွဲကိုသာဆက်ထိန်းထားတယ် ။ ဆိုလိုသည်မှာ => Apple ကို ဖယ်ရှားခြင်းဖြစ်သည်။

3 ။ ဘာကြောင့်ဒီလိုဖြစ်ရတာလဲ

PHP တွင်, ခင်းကျင်း၏သော့များသည်ထူးခြားသည်။ Array_flip () တန်ဖိုးကိုသော့တစ်ခုထဲသို့ပြောင်းလဲသောအခါတန်ဖိုးများသည်အတူတူပင်ဖြစ်ပါက "အဓိကပ conflict ိပက်ခ" ဖြစ်လိမ့်မည်။ PHP သည် ယခင်တန်ဖိုးကိုနောက်ဆက်တွဲတန်ဖိုးကိုထပ်ခါတလဲလဲရေးသား လိမ့်မည်။ ၎င်းသည်အချက်အလက်ဆုံးရှုံးမှုကိုဖြစ်ပေါ်စေလိမ့်မည်။

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

  1. A => AppleApple => A

  2. ခ => BananaBanana => ခ

  3. c => AppleApple => က c ( ယခင် Apple => A )

ဒါကြောင့် Apple => C ကို သာ နောက်ဆုံးရလဒ်မှာထိန်းသိမ်းထားတယ်။

4 ။ ဒေတာဆုံးရှုံးမှုကိုဘယ်လိုရှောင်ရှားရမလဲ။

အကယ်. သင်သည် "key-value ကို Swap" ကိုစီစဉ်ရန်လိုအပ်ပါကအချက်အလက်ဆုံးရှုံးမှုကိုလက်မခံနိုင်ပါကအောက်ပါဖြေရှင်းနည်းများကိုသင်စဉ်းစားနိုင်သည်။

နည်းလမ်း 1 - ထပ်တူတန်ဖိုးများကိုကိုယ်တိုင်ပြုလုပ်ပါ

တန်ဖိုးကို array ရှိသော့တစ်ခုအဖြစ်အသုံးပြုပါ, တန်ဖိုးသည် array ဖြစ်လာပြီးမူရင်းသော့ချက်များအားလုံးကိုဆက်လက်ထိန်းသိမ်းထားသည်။

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

$result = [];

foreach ($input as $key => $value) {
    if (!isset($result[$value])) {
        $result[$value] = [];
    }
    $result[$value][] = $key;
}

print_r($result);

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

 Array
(
    [apple] => Array
        (
            [0] => a
            [1] => c
        )

    [banana] => Array
        (
            [0] => b
        )
)

၎င်းသည်ဒေတာဆုံးရှုံးမှုကိုရှောင်ရှားရန်သာမကထိုသော့များသည်တူညီသောတန်ဖိုးနှင့်ကိုက်ညီကြောင်းရှင်းရှင်းလင်းလင်းမြင်နိုင်ရန်ခွင့်ပြုသည်။

5 ။ အစစ်အမှန်မြင်ကွင်းများအတွက်မှတ်သားဖို့အရာ

ဥပမာ configuration table ကိုပြုပြင်သည့်အခါဒေတာဘေ့စ်ကိုရှေ့တန်းအကွက်ထဲတွင်မြေပုံရေးဆွဲပါ။

 $mapping = [
    'username' => 'user',
    'email' => 'user',
    'address' => 'location'
];

$flipped = array_flip($mapping);

print_r($flipped);

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

 Array
(
    [user] => email
    [location] => address
)

User => အသုံးပြုသူအမည် နှင့် user => အီးမေးလ်ကို မည်သည့်အချိန်တွင်သိုလှောင်ထားကြောင်းသင်မျှော်လင့်ထားသော်လည်းအမှန်တကယ်တွင်မူ အသုံးပြုသူ => အီးမေးလ် သာကျန်ရှိပြီးအခြားသူများကိုဖုံးအုပ်ထားသည်။ ဤကိစ္စတွင်ယုတ္တိအမှားများကိုရှောင်ရှားရန်အထက်ဖော်ပြပါ "array" ကိုလေ့ကျင့်ရန်အလေ့အကျင့်ကိုအသုံးပြုရန်အကြံပြုသည်။

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

  • Array_flip () သည် သော့နှင့်တန်ဖိုးများကိုတွဲဖက်ပါလိမ့်မည်။

  • မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများထပ်တူထပ်တူထပ်မျှရှိပါက "အဓိကပ conflict ိပက်ခ" ဖြစ်လိမ့်မည်။

  • PHP ရှိ Array ခလုတ်များသည်ထူးခြားရမည်။

  • တန်ဖိုးကိုအဓိကသော့သူ၏အဖြစ်သို့ပြောင်းလဲနိုင်သည်။ သတင်းအချက်အလက်အားလုံးကိုထိန်းသိမ်းရန်မူရင်းသော့ကို array တစ်ခုတွင်သိမ်းဆည်းထားသည်။