PHP တွင်, array ခြားနားချက်အစုံ process ဖို့နည်းလမ်းများစွာရှိပါတယ်။ သာမန် arraiff () function ကိုအပြင်, array_flip () နှင့် array_diff_ey_key () functions များကိုလည်းသုံးနိုင်သည်။ ဤနည်းလမ်းသည် arrys နှစ်ခုအကြား "အဓိကတန်ဖိုးနှင့်ကိုက်ညီမှုကွဲပြားမှု" ကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါအထူးထိရောက်ပြီးလက်တွေ့ကျသည်။
Array_Flip () သည် ခင်းကျင်းမှု၏ သော့နှင့်တန်ဖိုးများကို အပြန်အလှန်ဆက်သွယ် လိမ့်မည်။ ဆိုလိုသည်မှာမူရင်းတန်ဖိုးသည်သော့တစ်ခုဖြစ်လာပြီးသော့သည်တန်ဖိုးတစ်ခုဖြစ်လာလိမ့်မည်ဟုဆိုလိုသည်။
$input = ['apple' => 'red', 'banana' => 'yellow'];
$result = array_flip($input);
// ထုတ်လုပ်ခြင်း:['red' => 'apple', 'yellow' => 'banana']
မှတ်စု: မူရင်းခင်းကျင်းမှုတွင်ထပ်တူတန်ဖိုးများရှိပါက array_flip () သည် မိတ္တူပွားများကိုစွန့်ပစ်လိမ့်မည်။
Array_Diff_Key () ကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောသော့များနှင့်နှိုင်းယှဉ်ရန်နှင့် ပထမဆုံးခင်းကျင်းမှုတွင်တည်ရှိခဲ့သော်လည်းအခြားခင်းကျင်းမှုတွင်မပေါ်ပါ ။
$array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 99];
$result = array_diff_key($array1, $array2);
// ထုတ်လုပ်ခြင်း:['a' => 1, 'c' => 3]
ကျွန်ုပ်တို့ တွင် array နှစ်ခုရှိပြီး ထူးခြားသောတန်ဖိုးကို တွေ့လိုသည်ဆိုပါစို့ ။
$groupA = ['apple', 'banana', 'cherry'];
$groupB = ['banana', 'grape'];
// တန်ဖိုးကို key ကိုပြောင်းပါ
$flippedA = array_flip($groupA);
$flippedB = array_flip($groupB);
// ကွဲပြားခြားနားစစ်ဆင်ရေး(သွား key ကဲှပြားချက်)
$diff = array_diff_key($flippedA, $flippedB);
// ပုံမှန်တန်ဖိုးခင်းကျင်းရန် restored
$uniqueToA = array_keys($diff);
print_r($uniqueToA);
Array
(
[0] => apple
[1] => cherry
)
$ Groupa ရှိတန်ဖိုးကိုအောင်မြင်စွာရှာဖွေတွေ့ရှိနိုင်သော်လည်း ဒေါ်လာအုပ်စု တွင်မရှိပါ။
ဤနည်းလမ်းသည်အောက်ပါအခြေအနေများအတွက်အလွန်သင့်တော်သည်။
နှစ်ခုတံဆိပ် arrays နှစ်ခုအကြားခြားနားချက်ကိုရှာဖွေပါ။
အသုံးပြုသူခွင့်ပြုချက် filtering (အသုံးပြုသူသည်ခွင့်ပြုချက်ရရှိသောအင်္ဂါရပ်များကိုရှာဖွေသော်လည်း module ကိုအသုံးမပြုပါ);
အမျိုးမျိုးသောရွေးချယ်စရာများနှိုင်းယှဉ်ကွဲပြားမှုပုံစံများကိုပုံစံ
ဥပမာအားဖြင့်, သင်သည်အသုံးပြုသူခွင့်ပြုချက်စနစ်ကိုတီထွင်နေပြီးလက်ရှိအသုံးပြုသူခွင့်ပြုချက်များမှာ -
$userPermissions = ['edit', 'delete', 'create'];
အချို့သော module တစ်ခုမှထောက်ပံ့သောစစ်ဆင်ရေးများမှာ -
$moduleSupports = ['edit', 'create'];
အသုံးပြုသူသည်လိုအပ်သောခွင့်ပြုချက်များကိုရှာဖွေနိုင်သည်။ သို့သော် module သည်တူညီသောနည်းအတိုင်းမပံ့ပိုးနိုင်ပါ။
$diff = array_keys(array_diff_key(
array_flip($userPermissions),
array_flip($moduleSupports)
));
// ထုတ်လုပ်ခြင်း ['delete']
PHP သည်အကဲဖြတ်မှုအတွက်တိုက်ရိုက်အသုံးပြုသောခြားနားချက်ကိုသတ်မှတ်ထားသော်လည်းအချို့သောပိုမိုကောင်းမွန်သည့်အခြေအနေများတွင် (တန်ဖိုးသည်ထူးခြားသည်) တွင် array_flip ( ) နှင့် array_diff_yiff_yiff_yiff_yiff_yiff_yiff_ey () နှင့် array_diff_yiF_key () ပေါင်းစပ်မှုသည်ပိုမိုထိရောက်သောလုပ်ငန်းများနှင့်ပေါင်းစပ်ခြင်းများပြုလုပ်သည်။
ဤသို့သောလှည့်ကွက်မျိုးသည်အထူးသဖြင့်ကြီးမားသောတပ်ဆင်မှုကြီးမားသည့်သို့မဟုတ်အော်ပရေတာများကိုနှိုင်းယှဉ်သောအခါစွမ်းဆောင်ရည်မြင့်မားသည်။