နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် "key whitelist" ယုတ္တိဗေဒဟုခေါ်သောအပေါင်းအသင်းခင်းကျင်းမှုတစ်ခုမှသတ်မှတ်ထားသော "သော့" ကိုသာထားရန်လိုအပ်ကြောင်းမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ကျွန်ုပ်တို့သည်ဤရည်မှန်းချက်အောင်မြင်ရန် array_intersect_key () ကို သုံး နိုင်သည်။ ယနေ့ကျွန်ုပ်တို့သည်အနည်းငယ် "လူကြိုက်များမှု" ကိုမိတ်ဆက်ပေးလိမ့်မည်။
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 ကို" သိမ်းထား "ရန်အလှည့်ကိုသုံးနိုင်သည်။ နိယာမသည်အောက်ပါအတိုင်းဖြစ်သည် -
whitelist သော့များ ပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုတည်ဆောက်ခြင်း (null တန်ဖိုးများဖန်တီးခြင်း);
စိတ်ကြိုက် Key နှိုင်းယှဉ်မှု function မှတဆင့်ယုတ္တိဗေဒကိုပြောင်းပြန်လုပ်ခြင်း,
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 တစ်ခုကိုဖန်တီးလိုပါကသင်ဤစိတ်ကူးကိုကြိုးစားကြည့်ပါ။