PHP Arrays နှင့်ဆက်ဆံရာတွင် Array_flip () သည်ရိုးရှင်းသောရိုးရိုးရှင်းရှင်းဖြစ်သော်လည်းလျှို့ဝှက်အန္တရာယ်ရှိနိုင်သည်။ ၎င်း၏ရည်ရွယ်ချက်မှာအသုံးပြုသူပေးထားသောအချက်အလက်များအတွက်၎င်းကိုတိုက်ရိုက်အသုံးပြုသောအခါ၎င်းသည်သင်မျှော်လင့်ထားသည့်ပြ problems နာများကိုဖြစ်ပေါ်စေသည်။
ဤဆောင်းပါးသည် array_flip () ၏ပုံရိပ်များကိုဥပမာအားဖြင့်ခွဲခြမ်းစိတ်ဖြာလိမ့်မည်။
Array_flip () ၏အခြေခံအသုံးပြုမှုသည်အလွန်အလိုလိုသိသည်။
$original = [
'apple' => 'fruit',
'carrot' => 'vegetable'
];
$flipped = array_flip($original);
print_r($flipped);
ထုတ်လုပ်မှု -
Array
(
[fruit] => apple
[vegetable] => carrot
)
၎င်းသည်တန်ဖိုးကိုသော့တစ်ခုနှင့်တန်ဖိုးတစ်ခု၏သော့ကိုပြောင်းလဲစေသည်။ ၎င်းသည်အချို့သောအခြေအနေများတွင် "တန်ဖိုးများ" အပေါ် အခြေခံ. "သော့များ" ကိုအလျင်အမြန်ရှာလိုပါကဤအချက်များတွင်အလွန်အသုံးဝင်သည်။ သို့သော်ပြ problem နာကိုလည်းဤအဓိပ္ပါယ်ဖွင့်ဆိုချက်တွင်ဝှက်ထားသည်။
array_flip () flipping သည့်အခါတန်ဖိုးများအားလုံးဟာထူးခွားတဲ့နှင့်သော့ချက်ရရှိနိုင်ဖို့လိုအပ်ပါတယ်။ အကယ်. သင့်တွင်သင်၏ခင်းကျင်းမှုတွင်ထပ်တူတန်ဖိုးများရှိပါကအမှားအယွင်းများမပေးဘဲ ယခင်အချက်အလက်များကိုတိတ်တဆိတ်ထပ်ခါတလဲလဲရေးသား လိမ့်မည်။
အသုံးပြုသူအချက်အလက်များ၏ဥပမာတစ်ခုကိုကြည့်ကြစို့။
$userInput = [
'user1' => 'admin',
'user2' => 'editor',
'user3' => 'admin' // ထပ်ခါတလဲလဲတန်ဖိုး
];
$flipped = array_flip($userInput);
print_r($flipped);
output ကို:
Array
(
[admin] => user3
[editor] => user2
)
admil သည် user1 နှင့်ကိုက်ညီသည်ဟုသင်ထင်ပါသလား။ မဟုတ်ပါ, User3 က overrides ။ အသုံးပြုသူအခန်းကဏ် role များ, ခွင့်ပြုချက်များ, အမှတ်အသားများနှင့်အခြားအချက်အလက်များကိုလုပ်ဆောင်သောအခါယုတ္တိအမှားများကိုဖြစ်ပေါ်စေသည်။
PHP ရှိ Array keys များသည်ကိန်းသို့မဟုတ်ကြိုးများသာဖြစ်နိုင်သည်။ array ကိုတင်သွင်းထားသော array တွင်ခင်းကျင်းခြင်းသို့မဟုတ်အရာဝတ်ထုတစ်ခုပါ 0 င်သည်ဆိုပါစို့ ။
$userInput = [
'key1' => 'value1',
'key2' => ['not' => 'allowed'],
'key3' => 'value3'
];
$flipped = array_flip($userInput);
print_r($flipped);
ထုတ်လုပ်မှု -
Warning: array_flip(): Can only flip STRING and INTEGER values!
Array
(
[value1] => key1
[value3] => key3
)
ဤသတိပေးချက်ကိုဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်တွေ့မြင်နိုင်သော်လည်းထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်ဖုံးကွယ်ထားနိုင်သည် ။
တန်ဖိုးများသည်အတူတူပင်ကြည့်နေလျှင်ပင် array_flip () သည် အမျိုးအစားများကိုတင်းကြပ်စွာခွဲခြားလိမ့်မည်။ ဥပမာအားဖြင့်, string ကို "1" နှင့်ကိန်း 1 ကို overwrite ဖြစ်စေမည့်တူညီသောသော့ချက်အဖြစ်သတ်မှတ်သည်။
$userInput = [
'a' => 1,
'b' => '1'
];
$flipped = array_flip($userInput);
print_r($flipped);
ထုတ်လုပ်မှု -
Array
(
[1] => b
)
သော့ "a" လုံးဝပျောက်ဆုံးသွားပြီ။
အကယ်. တန်ဖိုးများမှနောက်ကျော - စစ်ဆေးခြင်းသော့ချက်များ၏လုပ်ဆောင်မှုကိုသင်လိုအပ်လျှင်, သို့သော်ဒေတာအရင်းအမြစ်သည်ယုံကြည်စိတ်ချမှုမရှိပါ။ အောက်ပါနည်းလမ်းကိုသုံးနိုင်သည်။
$reverseMap = [];
foreach ($userInput as $key => $value) {
if (is_scalar($value)) {
$reverseMap[$value][] = $key;
}
}
ဤနည်းအားဖြင့်ထပ်တူတန်ဖိုးများအားလုံးနှင့်သက်ဆိုင်သောသော့များကိုထိန်းသိမ်းထားနိုင်သည်။
print_r($reverseMap);
ထုတ်လုပ်မှု -
Array
(
[admin] => Array ( [0] => user1 [1] => user3 )
[editor] => Array ( [0] => user2 )
)
Array_Flip () စင်ကြယ်သောစနစ်တကျပြည်တွင်းဒေတာများကိုကိုင်တွယ်သောအခါအလွန်အသုံးဝင်သည် ။
တန်ဖိုးသည်ထူးခြားသည်
တန်ဖိုးသည်စကေးအမျိုးအစား (string or integer) ၏သေချာမှုကိုသေချာအောင်လုပ်ပါ။
သင့်ရဲ့လှန်ရည်ရွယ်ချက်ကိုရှင်းရှင်းလင်းလင်းသိပြီးခြွင်းချက်များကိုကိုင်တွယ်ရန်အဆင်သင့်ဖြစ်မည်
ဒီလိုမှမဟုတ်ရင်သင်ဟာ bug တွေရဲ့ bug တွေကိုတိတ်တဆိတ်မိတ်ဆက်ပေးနိုင်ပြီးတစ်နေ့မှာသုံးစွဲသူကဖိုရမ်မှာ ခွင့် ပြုချက်အမှားအယွင်းတွေအကြောင်းကိုမကျေနပ်တဲ့အထိ,
ဤဆောင်းပါးသည်လျှို့ဝှက်သော်လည်းအန္တရာယ်ရှိသောတွင်းကိုရှောင်ရှားရန်သင်ကူညီနိုင်လိမ့်မည်ဟုမျှော်လင့်ပါ။ အကယ်. သင်သည်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုစနစ် (သို့) ဒေတာမြေပုံရေးဆွဲခြင်းလုပ်ငန်းကိုရေးဆွဲနေပါက,
နောက်ထပ်လေ့လာမှုအတွက် ကျေးဇူးပြု. စစ်ဆေးပါ။
?? https://m66.net/php-momanual/array_flip
?? https://m66.net/php-best-practices
သင့်တွင်အလားတူအသုံးပြုမှုမေးခွန်းများရှိပါက ကျေးဇူးပြု. ဆွေးနွေးရန်စာတစ်စောင်ထားခဲ့ပါ။ PHP လောကသည်အဟောင်းဖြစ်သော်လည်းအသေးစိတ်အချက်အလက်များတွင်စာတန်မာရ်နတ်ရှိသည်။