လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Array_diff_ukey () အပေါ်အခြေခံပြီးသော့ချက် whitelist ယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ပါ ()

Array_diff_ukey () အပေါ်အခြေခံပြီးသော့ချက် whitelist ယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ပါ ()

M66 2025-05-14

နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် "key whitelist" ယုတ္တိဗေဒဟုခေါ်သောအပေါင်းအသင်းခင်းကျင်းမှုတစ်ခုမှသတ်မှတ်ထားသော "သော့" ကိုသာထားရန်လိုအပ်ကြောင်းမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ကျွန်ုပ်တို့သည်ဤရည်မှန်းချက်အောင်မြင်ရန် array_intersect_key () ကို သုံး နိုင်သည်။ ယနေ့ကျွန်ုပ်တို့သည်အနည်းငယ် "လူကြိုက်များမှု" ကိုမိတ်ဆက်ပေးလိမ့်မည်။

Array_diff_ukey () ?

array_diff_ukey () သည် php မှပေးသော function တစ်ခုဖြစ်ပြီး အရေးကြီးသောအမည်များ (2) ခုထက်ပိုသောအမည်များကိုနှိုင်းယှဉ်ရန်နှင့်သော့ချက်အမည်များသည်တန်းတူရှိမရှိဆုံးဖြတ်ရန် callback function ကိုအသုံးပြုပါ။ ဤလုပ်ဆောင်ချက်သည် ပထမဆုံးခင်းကျင်းမှုတွင်သော့ချက်ကျသောတန်ဖိုးရှိအတွဲကိုပြန်ပို့သော်လည်းအခြားခင်းကျင်းမှုများတွင်မတည်ရှိပါ

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

 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array

အကောင်အထည်ဖော်မှုစိတ်ကူးများ

Array_diff_ukey () ကို "ဖယ်ထုတ်" ရန်အသုံးပြုသော်လည်း "တိုတောင်းသော" အနည်းငယ်ဖြင့် "" တိုတို "နှင့်အတူ whitelist key ကို" သိမ်းထား "ရန်အလှည့်ကိုသုံးနိုင်သည်။ နိယာမသည်အောက်ပါအတိုင်းဖြစ်သည် -

  1. whitelist သော့များ ပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုတည်ဆောက်ခြင်း (null တန်ဖိုးများဖန်တီးခြင်း);

  2. စိတ်ကြိုက် Key နှိုင်းယှဉ်မှု function မှတဆင့်ယုတ္တိဗေဒကိုပြောင်းပြန်လုပ်ခြင်း,

  3. array_diff_ukey () ကိုသုံးပါ။

နမူနာကုဒ်

ဤတွင်ကျွန်ုပ်တို့သည်ပုံစံကိုတင်ပြသောဒေတာ array တစ်ခုရှိသည်ဟုယူဆပြီး, ကျွန်ုပ်တို့သည်ပုံစံကိုတင်ပြသော ဒေါ်လာအချက်အလက်များ ရှိသည်ဟုယူဆသည်။ ကျွန်ုပ်တို့သည်သော့ချက်များကို အသုံးပြု. သော့ချက်များ နှင့် 'email' ကိုထိန်းသိမ်းလိုကြသည်။

 <?php

// Simulated အသုံးပြုသူတင်သွင်းမှုဒေတာ
$data = [
    'username' => 'john_doe',
    'email' => 'john@example.com',
    'password' => '123456',
    'redirect' => 'https://m66.net/welcome'
];

// Whitelist key ကိုသတ်မှတ်ပါ
$whitelistKeys = [
    'username' => true,
    'email' => true,
];

// array_diff_ukey Reverse အပြောင်းအလဲနဲ့ယုတ္တိဗေဒ
$filteredData = array_diff_ukey($data, $whitelistKeys, function ($key1, $key2) {
    // သော့ခတ် whitelist အတွက်ထိန်းသိမ်းထား
    return $key1 === $key2 ? 0 : -1;
});

// မူရင်းခင်းကျင်းမှသူတို့ကိုဖယ်ရှားပါ“whitelist ပေါ်မှာမဟုတ်ပါဘူး”သော့များ
$cleanData = array_diff_key($data, $filteredData);

// ရလဒ်ရလဒ်
print_r($cleanData);

/*
ရလဒ်ရလဒ်:
Array
(
    [username] => john_doe
    [email] => john@example.com
)
*/
?>

အားသာချက်ခွဲခြမ်းစိတ်ဖြာ

array_diff_ukey () ကိုအသုံးပြုပြီးသော့ချက်အဖြူရောင် () ကိုအသုံးပြုပြီးသော့ခတ်မှု၏ယုတ္တိဗေဒသည်အနည်းငယ်ညှင်းပန်းနှိပ်စက်မှုဖြစ်သည်။

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

  • မြင့်မားသောဖတ်နိုင်မှု (မှတ်ချက်များနှင့်အတူအသုံးပြုသောအခါ);

  • ဘေးထွက်ဆိုးကျိုးများ - မူရင်းခင်းကျင်းမှုကိုပြုပြင်မွမ်းမံမည်မဟုတ်ပါ။

လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်

ဤရေးသားမှုကို tool function တစ်ခုအဖြစ်သင် encapsulate လုပ်နိုင်သည်။

  • အသုံးပြုသူမှတင်သွင်းထားသောအချက်အလက်များကို filter လုပ်ပါ။

  • System Configuration ၏လုံခြုံရေးနယ်ပယ်များကိုကာကွယ်ပါ။

  • interface တုံ့ပြန်မှုဖွဲ့စည်းပုံ၏ output ပါဝင်မှုကိုထိန်းချုပ်သည်။

အကျဉ်းချုပ်

PHP သည် arrays များကိုစီမံခန့်ခွဲရန်နည်းလမ်းအမျိုးမျိုးကိုထောက်ပံ့သော်လည်း array_diff_ukey () ကဲ့သို့သောလုပ်ဆောင်မှုများကိုအသုံးပြုခြင်းသည်နည်းလမ်းများကိုအသုံးပြုခြင်းအားဖြင့်ဘုံဝယ်လိုအားယုတ္တိဗေဒကိုနည်းအမျိုးမျိုးဖြင့်အကောင်အထည်ဖော်ရန်ခွင့်ပြုသည်။ သင်ပိုမိုအားကောင်းတဲ့နှင့်ပြန်လည်သုံးသပ်ရန်ပြင်ဆင်နိုင်သော filter တစ်ခုကိုဖန်တီးလိုပါကသင်ဤစိတ်ကူးကိုကြိုးစားကြည့်ပါ။