လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_flip () array_diff_key () differential စစ်ဆင်ရေးကိုအကောင်အထည်ဖော်

array_flip () array_diff_key () differential စစ်ဆင်ရေးကိုအကောင်အထည်ဖော်

M66 2025-05-18

PHP တွင်, array ခြားနားချက်အစုံ process ဖို့နည်းလမ်းများစွာရှိပါတယ်။ သာမန် arraiff () function ကိုအပြင်, array_flip () နှင့် array_diff_ey_key () functions များကိုလည်းသုံးနိုင်သည်။ ဤနည်းလမ်းသည် arrys နှစ်ခုအကြား "အဓိကတန်ဖိုးနှင့်ကိုက်ညီမှုကွဲပြားမှု" ကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါအထူးထိရောက်ပြီးလက်တွေ့ကျသည်။

1 ။ အခြေခံသဘောတရားများကိုပြန်လည်သုံးသပ်ခြင်း

1 ။ array_flip ()

Array_Flip () သည် ခင်းကျင်းမှု၏ သော့နှင့်တန်ဖိုးများကို အပြန်အလှန်ဆက်သွယ် လိမ့်မည်။ ဆိုလိုသည်မှာမူရင်းတန်ဖိုးသည်သော့တစ်ခုဖြစ်လာပြီးသော့သည်တန်ဖိုးတစ်ခုဖြစ်လာလိမ့်မည်ဟုဆိုလိုသည်။

 $input = ['apple' => 'red', 'banana' => 'yellow'];
$result = array_flip($input);

// ထုတ်လုပ်ခြင်း:['red' => 'apple', 'yellow' => 'banana']

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

2 ။ array_diff_key ()

Array_Diff_Key () ကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောသော့များနှင့်နှိုင်းယှဉ်ရန်နှင့် ပထမဆုံးခင်းကျင်းမှုတွင်တည်ရှိခဲ့သော်လည်းအခြားခင်းကျင်းမှုတွင်မပေါ်ပါ

 $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 99];

$result = array_diff_key($array1, $array2);

// ထုတ်လုပ်ခြင်း:['a' => 1, 'c' => 3]

2 ။ array_flip + array_diff_key "တန်ဖိုးခြားနားချက်ကိုအစုံအကောင်အထည်ဖော်ရန်

ကျွန်ုပ်တို့ တွင် 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 ရှိတန်ဖိုးကိုအောင်မြင်စွာရှာဖွေတွေ့ရှိနိုင်သော်လည်း ဒေါ်လာအုပ်စု တွင်မရှိပါ။

3 ။ လျှောက်လွှာအခြေအနေများဥပမာ

ဤနည်းလမ်းသည်အောက်ပါအခြေအနေများအတွက်အလွန်သင့်တော်သည်။

  • နှစ်ခုတံဆိပ် 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']

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

PHP သည်အကဲဖြတ်မှုအတွက်တိုက်ရိုက်အသုံးပြုသောခြားနားချက်ကိုသတ်မှတ်ထားသော်လည်းအချို့သောပိုမိုကောင်းမွန်သည့်အခြေအနေများတွင် (တန်ဖိုးသည်ထူးခြားသည်) တွင် array_flip ( ) နှင့် array_diff_yiff_yiff_yiff_yiff_yiff_yiff_ey () နှင့် array_diff_yiF_key () ပေါင်းစပ်မှုသည်ပိုမိုထိရောက်သောလုပ်ငန်းများနှင့်ပေါင်းစပ်ခြင်းများပြုလုပ်သည်။

ဤသို့သောလှည့်ကွက်မျိုးသည်အထူးသဖြင့်ကြီးမားသောတပ်ဆင်မှုကြီးမားသည့်သို့မဟုတ်အော်ပရေတာများကိုနှိုင်းယှဉ်သောအခါစွမ်းဆောင်ရည်မြင့်မားသည်။