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

array_filter () ကိုလျင်မြန်စွာခွင့်ပြုချက်စီစစ်ခြင်းအကောင်အထည်ဖော်ရန်နှင့်အတူပေါင်းစပ်

M66 2025-06-03

Web Development တွင်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုသည်အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ များသောအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောအသုံးပြုသူများ၏ခွင့်ပြုချက်များအပေါ် အခြေခံ. အချို့သောအရင်းအမြစ်များကိုကန့်သတ်ထားသည်။ PHP တွင်ကျွန်ုပ်တို့သည် array_filter () function ကိုထိရောက်စွာ filter permissions သို့သုံးနိုင်သည်။ အထူးသဖြင့်အသုံးပြုသူခွင့်ပြုချက်အချက်အလက်များသည်အလွန်ကောင်းမွန်သည်။ ဤဆောင်းပါးသည် array_filter () နှင့်ပေါင်းစပ်ခြင်းဖြင့်ခွင့်ပြုချက်စစ် function ကိုလျင်မြန်စွာအကောင်အထည်ဖော်နိုင်ပုံကိုမိတ်ဆက်ပေးလိမ့်မည်။

array_filter () function ကိုမိတ်ဆက်ပေးခြင်း

PHP ၏ Array_filter () function ကို acray တစ်ခုတွင် element များကို filter လုပ်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်သည်ခင်းကျင်းမှုတစ်ခုနှင့် callback function ကိုလက်ခံသည်။ callback function ကို၏ပြန်လာတန်ဖိုးမှာ မှန် သို့မဟုတ် မှားယွင်းသော ဖြစ်ပါတယ်။ array_filter () သည် calnback function ၏ပြန်လာတန်ဖိုးကို အခြေခံ. array တွင် element များကို reter လုပ်မထား,

အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_filter(array $array, callable $callback, int $mode = 0): array
  • $ array : filter သို့ array ။

  • $ callback : filtering များအတွက် callback function ကို။

  • $ mode : callback function ကိုဖြတ်သန်းတန်ဖိုးကိုဆုံးဖြတ်ရန်အတွက် $ mode: optional parameter သည်။ 0 သည် Value Transmission Method ဖြစ်သည်, 1 သည်သော့ထုတ်လွှင့်နည်းလမ်းဖြစ်သည်။

အခြေခံဥပမာ - array_filter ကိုအသုံးပြုပြီး filter permissions ()

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

 $permissions = [
    'admin' => ['view_dashboard', 'edit_settings', 'view_reports'],
    'editor' => ['view_dashboard', 'view_reports'],
    'viewer' => ['view_dashboard'],
];

အရင်းအမြစ်များကိုအသုံးပြုသူအခန်းကဏ် on အပေါ် အခြေခံ. 0 င်ခွင့်ရသည့်အရင်းအမြစ်များကိုစစ်ထုတ်လိုပါသည်။ admin assistian သည်အရင်းအမြစ်များအားလုံးကိုရယူရန်ခွင့်ပြုချက်တောင်းရန်လိုအပ်ကြောင်းဟုယူဆခြင်းသည် အယ်ဒီတာ နှင့် ကြည့်ရှုသူများကို အသုံးပြုသူများသည်အချို့သောကန့်သတ်ချက်များရှိသည်။

 $user_role = 'editor'; // ဒါဟာလက်ရှိအယ်ဒီတာအခန်းကဏ် ery ဖြစ်ပါတယ်ယူဆ

// လက်ရှိအခန်းကဏ် in အတွက်ခွင့်ပြုချက်ဖြင့်အရင်းအမြစ်များကို filter
$user_permissions = $permissions[$user_role];

// စစ်ထုတ်ရန်လိုအပ်သည့်အရင်းအမြစ်များစာရင်း
$all_permissions = ['view_dashboard', 'edit_settings', 'view_reports', 'delete_post'];

$filtered_permissions = array_filter($all_permissions, function ($permission) use ($user_permissions) {
    return in_array($permission, $user_permissions);
});

print_r($filtered_permissions);

ရလဒ်ရလဒ် -

 Array
(
    [0] => view_dashboard
    [2] => view_reports
)

ဒီဥပမာကတဆင့် array_filter () function ကကျွန်တော်တို့ကိုလက်ရှိအသုံးပြုသူအခန်းကဏ် of ရဲ့ခွင့်ပြုချက်ကိုစစ်ထုတ်ဖို့ကူညီပေးတယ်ဆိုတာငါတို့တွေ့နိုင်တယ်။

ရှုပ်ထွေးသောခွင့်ပြုချက် filtering ကိုအကောင်အထည်ဖော်ရန် array_filter () ကို ပေါင်းစပ်ခြင်း

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

အောက်ပါခွင့်ပြုချက်အချက်အလက်များရှိသည်ဆိုပါစို့။

 $permissions = [
    'admin' => ['view_dashboard', 'edit_settings', 'view_reports'],
    'editor' => ['view_dashboard', 'view_reports'],
    'viewer' => ['view_dashboard'],
];

// အသုံးပြုသူအခန်းကဏ်။
$user_role = 'admin';

// အပိုဆောင်းအသုံးပြုသူခွင့်ပြုချက်ကန့်သတ်ချက်များ
$user_restrictions = ['edit_settings']; // admin အခန်းကဏ် editing ကိုတည်းဖြတ်ခြင်းဆက်တင်များကိုခွင့်မပြုပါနှင့်

// လက်ရှိအခန်းကဏ် in အတွက်ခွင့်ပြုချက်ဖြင့်အရင်းအမြစ်များကို filter并应用额外的权限限制
$user_permissions = $permissions[$user_role];

$all_permissions = ['view_dashboard', 'edit_settings', 'view_reports', 'delete_post'];

$filtered_permissions = array_filter($all_permissions, function ($permission) use ($user_permissions, $user_restrictions) {
    return in_array($permission, $user_permissions) && !in_array($permission, $user_restrictions);
});

print_r($filtered_permissions);

ရလဒ်ရလဒ် -

 Array
(
    [0] => view_dashboard
    [2] => view_reports
)

ဤဥပမာတွင်အသုံးပြုသူအခန်းကဏ် of ၏ခွင့်ပြုချက်များကိုကျွန်ုပ်တို့ filter မလုပ်ဘဲ user_retri.s အပေါ် အခြေခံ. ခွင့်ပြုချက်များကိုလည်းထပ်မံကန့်သတ်ထားသည်။

အကျဉ်းချုပ်

array_filter () သည် PHP တွင်အလွန်အသုံးဝင်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် US လုပ်ငန်းစဉ်နှင့် filter များကိုထိထိရောက်ရောက်ကူညီနိုင်သည်။ ခွင့်ပြုချက်စီမံခန့်ခွဲမှုတွင် array_filter ကိုပေါင်းစပ်ခြင်း array_filter () သည် မတူညီသောအသုံးပြုသူ၏အခန်းကဏ် and နှင့်ခွင့်ပြုချက်လိုအပ်ချက်များကို အခြေခံ. လိုအပ်သောခွင့်ပြုချက်များကိုအလွယ်တကူ filter လုပ်နိုင်သည်။ အကယ်. သင့်စီမံကိန်းတွင်ခွင့်ပြုချက်အချက်အလက်များစွာရှိပါက array_filter () ကို သုံး. code ၏ဖတ်နိုင်မှုကိုတိုးတက်အောင်မလုပ်နိုင်ပါက,