လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ခွင့်ပြုချက်ခြားနားချက်ကိုတရားစီရင်ရန် array_diff () ကိုမည်သို့အသုံးပြုရမည်နည်း။

ခွင့်ပြုချက်ခြားနားချက်ကိုတရားစီရင်ရန် array_diff () ကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-05-14

Web Development တွင်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုသည်ဘုံလိုအပ်ချက်ဖြစ်သည်။ သင့်တော်သော PHP function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောသုံးစွဲသူများအကြားခွင့်ပြုချက်ကွဲပြားမှုကိုအလွယ်တကူဆုံးဖြတ်နိုင်သည်။ array_diff () သည် PHP တွင်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော array များအကြားကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်နှင့်ကွဲပြားခြားနားမှုများကိုပြန်ပို့ရန်၎င်းကိုအသုံးပြုနိုင်သည်။ ခွင့်ပြုချက်စီမံခန့်ခွဲမှုတွင်ကျွန်ုပ်တို့သည်မတူညီသောအသုံးပြုသူများအကြားခွင့်ပြုချက်ကွဲပြားမှုကိုဆုံးဖြတ်ရန်ဤလုပ်ဆောင်မှုကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။

1 ။ array_diff () function ကိုခြုံငုံသုံးသပ်ချက်

PHP တွင် array_diff () function ကို array နှစ်ခုအကြားကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်အသုံးပြုနိုင်သည်။ ၎င်းသည်ပထမခင်းကျင်းမှုတွင်တည်ရှိနေသောဒြပ်စင်များပါ 0 င်သော array အသစ်တစ်ခုကိုပြန်လည်ရောက်ရှိစေသော်လည်းအခြားခင်းကျင်းမှုများတွင်မရှိပါ။ တနည်းအားဖြင့် array_diff () ကို array အတွက်ထူးခွားတဲ့ဒြပ်စင်တွေကိုရှာဖို့အသုံးပြုသည်။

 array_diff(array $array1, array $array2 [, array $array3, ... ]);

2 ။ အသုံးပြုသူခွင့်ပြုချက်ခြားနားချက်ကိုဆုံးဖြတ်ရန် array_diff () ကို သုံးပါ

ကျွန်ုပ်တို့တွင်အသုံးပြုသူ A နှင့် User B ကိုခွင့်ပြုချက် 2 ခုရှိသည်ဆိုပါစို့။ အသုံးပြုသူ B တွင်အသုံးပြုသူ B တွင်ရှိသည်သောခွင့်ပြုချက်များကိုရှာဖွေလိုသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည် array_diff () မှတဆင့်အောင်မြင်နိုင်သည်။

နမူနာကုဒ်:

 <?php
// အသုံးပြုသူ A နှင့်အသုံးပြုသူ B ခွင့်ပြုချက်ခင်းကျင်း
$user_a_permissions = ['view_dashboard', 'edit_profile', 'delete_account', 'manage_users'];
$user_b_permissions = ['view_dashboard', 'edit_profile', 'manage_users'];

// အသုံးပြု array_diff() 找出အသုံးပြုသူ A 拥有但အသုံးပြုသူ B ခွင့်ပြုချက်မရှိပါ
$permission_diff = array_diff($user_a_permissions, $user_b_permissions);

// output ကိုခြားနားချက်
echo "အသုံးပြုသူ A 拥有但အသုံးပြုသူ B ခွင့်ပြုချက်မရှိပါ:\n";
print_r($permission_diff);
?>

ရလဒ်ရလဒ် -

 အသုံးပြုသူ A 拥有但အသုံးပြုသူ B ခွင့်ပြုချက်မရှိပါ:
Array
(
    [2] => delete_account
)

အထက်ဖော်ပြပါကုဒ်များတွင်အသုံးပြုသူခမှန်ကန်တဲ့ခွင့်ပြုချက်ကိုရှာဖွေရန် array_diff () ကို သုံးသည်

3 ။ တိုးချဲ့ခြင်း - Multi-user ခွင့်ပြုချက်ကွဲပြားခြားနားမှုများကိုစစ်ဆေးပါ

အသုံးပြုသူများအကြားခွင့်ပြုချက်ကွဲပြားခြားနားမှုကိုနှိုင်းယှဉ်လိုပါက array_diff () သည် အဆင်သင့်ဖြစ်နေနိုင်သည်။ ကျွန်ုပ်တို့တွင်အသုံးပြုသူများ (A, B, နှင့် C) ရှိသည်ဟုယူဆလျှင်အသုံးပြုသူတစ် ဦး စီအတွက် array_diff မှတဆင့်ခွင့်ပြုချက်ကွဲပြားမှုကိုကျွန်ုပ်တို့ရှာဖွေနိုင်သည်။

နမူနာကုဒ်:

 <?php
// အသုံးပြုသူ A、B နှင့် C ခွင့်ပြုချက်ခင်းကျင်း
$user_a_permissions = ['view_dashboard', 'edit_profile', 'delete_account', 'manage_users'];
$user_b_permissions = ['view_dashboard', 'edit_profile', 'manage_users'];
$user_c_permissions = ['view_dashboard', 'edit_profile'];

// အသုံးပြု array_diff() 找出အသုံးပြုသူ A နှင့်အသုံးပြုသူ B、C အကြားခွင့်ပြုချက်အတွက်ကွဲပြားခြားနားမှု
$diff_a_b = array_diff($user_a_permissions, $user_b_permissions);
$diff_a_c = array_diff($user_a_permissions, $user_c_permissions);

// output ကိုခြားနားချက်
echo "အသုံးပြုသူ A 拥有但အသုံးပြုသူ B ခွင့်ပြုချက်မရှိပါ:\n";
print_r($diff_a_b);
echo "\n";
echo "အသုံးပြုသူ A 拥有但အသုံးပြုသူ C ခွင့်ပြုချက်မရှိပါ:\n";
print_r($diff_a_c);
?>

ရလဒ်ရလဒ် -

 အသုံးပြုသူ A 拥有但အသုံးပြုသူ B ခွင့်ပြုချက်မရှိပါ:
Array
(
    [2] => delete_account
)

အသုံးပြုသူ A 拥有但အသုံးပြုသူ C ခွင့်ပြုချက်မရှိပါ:
Array
(
    [2] => delete_account
    [3] => manage_users
)

ဤဥပမာတွင်အသုံးပြုသူ A နှင့်အသုံးပြုသူ B နှင့် C တို့အကြားခွင့်ပြုချက်ကွဲပြားမှုကိုနှိုင်းယှဉ်ကြည့်ပါ။

4 ။ အမှန်တကယ်စီမံကိန်းများအတွက်လျှောက်လွှာ

အမှန်တကယ်စီမံကိန်းများတွင် array_diff () ကို ပိုမိုရှုပ်ထွေးသောခွင့်ပြုချက်တရားစီရင်ချက်များပြုလုပ်ရန်အသုံးပြုနိုင်သည်။

  • အသုံးပြုသူသည်အချို့သောစာမျက်နှာတစ်ခုသို့ 0 င်ရောက်နိုင်သောအခါအသုံးပြုသူသည်စာမျက်နှာကိုဝင်ရောက်ရန်လိုအပ်သောခွင့်ပြုချက်ရှိမရှိဆုံးဖြတ်ရန် array_diff () ကို သုံးပါ။

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

နမူနာလျှောက်လွှာ - အသုံးပြုသူသည်စာမျက်နှာတစ်ခုသို့ဝင်ရောက်ရန်ခွင့်ပြုချက်ရှိမရှိစစ်ဆေးပါ

 <?php
// စာမျက်နှာတစ်ခု၏ခွင့်ပြုချက်ကိုယူဆပါ
$page_required_permissions = ['view_dashboard', 'edit_profile'];

// 当前အသုံးပြုသူ的权限
$current_user_permissions = ['view_dashboard', 'edit_profile', 'delete_account'];

// 判断当前အသုံးပြုသူ是否拥有访问该页面的所有权限
$missing_permissions = array_diff($page_required_permissions, $current_user_permissions);

if (empty($missing_permissions)) {
    echo "အသုံးပြုသူ有权限访问该页面。";
} else {
    echo "အသုံးပြုသူ缺少以下权限:\n";
    print_r($missing_permissions);
}
?>

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

array_diff () function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်အသုံးပြုသူခွင့်ပြုချက်ကွဲပြားမှုကိုအလွယ်တကူဆုံးဖြတ်နိုင်သည်။ ၎င်းသည်အလွန်ရိုးရှင်းပါသည်, သို့သော်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုတွင်အလွန်အသုံးဝင်သည်။ အသုံးပြုသူတွင်ခွင့်ပြုချက်အချို့ရှိသည်, သို့မဟုတ်မည်သည့်ခွင့်ပြုချက်ပျောက်ဆုံးနေသည်ကိုရှာဖွေရန်၎င်းသည်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်ဤလုပ်ဆောင်မှုသည်ခွင့်ပြုချက်ထိန်းချုပ်ရေးနှင့်လုံခြုံရေးစီမံခန့်ခွဲမှုအတွက်အလွန်အရေးကြီးသည်။

သုံးစွဲသူခွင့်ပြုချက်ကွဲပြားမှုကိုဆုံးဖြတ်ရန် array_diff () function ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်လျှောက်ထားရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုနှင့်လျှောက်ထားရန်ကူညီနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါကသို့မဟုတ်ထပ်မံဆွေးနွေးလိုပါက ကျေးဇူးပြု. ဆက်သွယ်ပါ။