PHP ပရိုဂရမ်တွင် Array_Flip () သည်များသောအားဖြင့်ခင်းကျင်းခြင်း၏သော့နှင့်တန်ဖိုးများကိုအတွဲများနှင့်တန်ဖိုးများကိုတွဲဖက်နိုင်သည့်အသုံးများသော function တစ်ခုဖြစ်သည်။ သို့သော် developer များစွာသည်အထူးသဖြင့်ခင်းကျင်းမှုတွင်တန်ဖိုးများရှိသည့်အခါ "ဒေတာဆုံးရှုံးမှု" ၏ပြ problem နာကိုကြုံတွေ့ရနိုင်သည်။ ဒီတော့ဘာဖြစ်နေတာလဲ ဤဆောင်းပါးသည် 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 နာမျှမရှိဘဲသော့များနှင့်တန်ဖိုးများကိုအောင်မြင်စွာအပြန်အလှန်ပြောဆိုနိုင်ကြောင်းမြင်တွေ့နိုင်သည်။
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 ကို ဖယ်ရှားခြင်းဖြစ်သည်။
PHP တွင်, ခင်းကျင်း၏သော့များသည်ထူးခြားသည်။ Array_flip () တန်ဖိုးကိုသော့တစ်ခုထဲသို့ပြောင်းလဲသောအခါတန်ဖိုးများသည်အတူတူပင်ဖြစ်ပါက "အဓိကပ conflict ိပက်ခ" ဖြစ်လိမ့်မည်။ PHP သည် ယခင်တန်ဖိုးကိုနောက်ဆက်တွဲတန်ဖိုးကိုထပ်ခါတလဲလဲရေးသား လိမ့်မည်။ ၎င်းသည်အချက်အလက်ဆုံးရှုံးမှုကိုဖြစ်ပေါ်စေလိမ့်မည်။
ဥပမာအားဖြင့်ယခုအချိန်အထိ array_flip () ကိုကွပ်မျက်ခြင်းလုပ်ငန်းစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
A => Apple → Apple => A
ခ => Banana → Banana => ခ
c => Apple → Apple => က c ( ယခင် Apple => A )
ဒါကြောင့် Apple => C ကို သာ နောက်ဆုံးရလဒ်မှာထိန်းသိမ်းထားတယ်။
အကယ်. သင်သည် "key-value ကို Swap" ကိုစီစဉ်ရန်လိုအပ်ပါကအချက်အလက်ဆုံးရှုံးမှုကိုလက်မခံနိုင်ပါကအောက်ပါဖြေရှင်းနည်းများကိုသင်စဉ်းစားနိုင်သည်။
တန်ဖိုးကို 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
)
)
၎င်းသည်ဒေတာဆုံးရှုံးမှုကိုရှောင်ရှားရန်သာမကထိုသော့များသည်တူညီသောတန်ဖိုးနှင့်ကိုက်ညီကြောင်းရှင်းရှင်းလင်းလင်းမြင်နိုင်ရန်ခွင့်ပြုသည်။
ဥပမာ configuration table ကိုပြုပြင်သည့်အခါဒေတာဘေ့စ်ကိုရှေ့တန်းအကွက်ထဲတွင်မြေပုံရေးဆွဲပါ။
$mapping = [
'username' => 'user',
'email' => 'user',
'address' => 'location'
];
$flipped = array_flip($mapping);
print_r($flipped);
ထုတ်လုပ်မှု -
Array
(
[user] => email
[location] => address
)
User => အသုံးပြုသူအမည် နှင့် user => အီးမေးလ်ကို မည်သည့်အချိန်တွင်သိုလှောင်ထားကြောင်းသင်မျှော်လင့်ထားသော်လည်းအမှန်တကယ်တွင်မူ အသုံးပြုသူ => အီးမေးလ် သာကျန်ရှိပြီးအခြားသူများကိုဖုံးအုပ်ထားသည်။ ဤကိစ္စတွင်ယုတ္တိအမှားများကိုရှောင်ရှားရန်အထက်ဖော်ပြပါ "array" ကိုလေ့ကျင့်ရန်အလေ့အကျင့်ကိုအသုံးပြုရန်အကြံပြုသည်။
Array_flip () သည် သော့နှင့်တန်ဖိုးများကိုတွဲဖက်ပါလိမ့်မည်။
မူရင်းခင်းကျင်းမှုတွင်တန်ဖိုးများထပ်တူထပ်တူထပ်မျှရှိပါက "အဓိကပ conflict ိပက်ခ" ဖြစ်လိမ့်မည်။
PHP ရှိ Array ခလုတ်များသည်ထူးခြားရမည်။
တန်ဖိုးကိုအဓိကသော့သူ၏အဖြစ်သို့ပြောင်းလဲနိုင်သည်။ သတင်းအချက်အလက်အားလုံးကိုထိန်းသိမ်းရန်မူရင်းသော့ကို array တစ်ခုတွင်သိမ်းဆည်းထားသည်။