array_intersect_ukey(array $array1, array $array2, callable $key_compare_func): array
ဒီ function က ဒေါ်လာ array1 မှာရှိတဲ့ဒေါ်လာ array1 မှာရှိတဲ့သော့တွေပါ 0 င်တဲ့ခင်းကျင်းမှုတစ်ခုပါ 0 င်သည်။ သော့များ၏နှိုင်းယှဉ်နည်းလမ်း key_compare_func မှဆုံးဖြတ်သည်။
array_keys(array $array, mixed $search_value = null, bool $strict = false): array
array_keys သည် ခင်းကျင်းမှုရှိသော့ချက်များအားလုံးကိုပြန်ပို့သည်။ သို့မဟုတ်သတ်မှတ်ထားသောတန်ဖိုးတစ်ခုတွင်တန်ဖိုးနှင့်သက်ဆိုင်သောသော့ကိုပြန်ပို့သည်။
ကျွန်ုပ်တို့သည် APIs အစုတခုဖြင့်ပြန်လာသောအချက်အလက်များကိုကျွန်ုပ်တို့လုပ်ဆောင်သည့်အခါ, သစ်ခုတ်ခြင်းသို့မဟုတ်တင်ခြင်းကဲ့သို့သောနောက်ထပ်ပြုပြင်ထုတ်လုပ်မှုအတွက်ပြန်လည်ပြုပြင်ခြင်းများအတွက်သတ်မှတ်ထားသောကွက်လပ်များကိုစစ်ဆေးရန်လိုအပ်သည်ဆိုပါစို့။ ဒီမှာပုံမှန်ဇာတ်လမ်းတစ်ပုဒ်ဖြစ်ပါတယ်။
$apiData = [
'id' => 101,
'username' => 'alice',
'email' => '[email protected]',
'status' => 'active',
'created_at' => '2024-06-01 12:00:00',
'updated_at' => '2024-06-10 08:30:00'
];
$logFields = ['id', 'username', 'email'];
ကျွန်ုပ်တို့သည်ပါ 0 င်သောအကြောင်းအရာများကို ဒေါ်လာ apidata keys 'id' ' နှင့် ' useername ' နှင့် ' email ' ဖြင့်သာသိမ်းဆည်းထားလို။ အခြားနယ်ပယ်များကိုစွန့်ပစ်သည်။
$allowedKeys = array_flip($logFields);
$filteredData = array_intersect_ukey(
$apiData,
$allowedKeys,
function ($key1, $key2) {
return strcmp($key1, $key2);
}
);
Array
(
[id] => 101
[username] => alice
[email] => [email protected]
)
Array_flip ($ lockfields) သည် အဓိကသော့ချက်ဖြစ်သည်။ မည်သည့် key_intersect_ukey အတွက်နှိုင်းယှဉ်မှုအရာဝတ်ထုတစ်ခုအဖြစ်အသုံးပြုနိုင်ရန်အတွက်ကျွန်ုပ်တို့တွင်ခင်းကျင်းရန်အတွက်အဓိကအမည်များကိုလှန်လှောကြည့်ရှုရန်လိုအပ်သည်။
StrcMP ကိုနှိုင်းယှဉ်ခြင်း function ကိုနှိုင်းယှဉ်ကြည့်ပါ။
နောက်ဆုံးရလဒ်မှာ $ Apittata key တွင် $ lockfields တွင်တည်ရှိသည့်နယ်ပယ်များဖြစ်သည်။
URL များဖြင့်အသုံးပြုသူ configuration data တစ်ခုနှင့်ကျွန်ုပ်တို့ကိုင်တွယ်ဖြေရှင်းနေကြောင်း, Whitelististed URL domain name ပါ 0 င်သောအဘို့ကိုသာသိမ်းထားလိုကြသည်ဆိုပါစို့။
$userSettings = [
'homepage' => 'https://gitbox.net/home',
'avatar' => 'https://cdn.gitbox.net/avatar.jpg',
'backup_site' => 'https://example.com/backup',
'profile' => 'https://gitbox.net/user/profile'
];
$validUrls = array_keys(
array_filter($userSettings, function ($url) {
return parse_url($url, PHP_URL_HOST) === 'gitbox.net';
})
);
$validKeys = array_flip($validUrls);
$filteredSettings = array_intersect_ukey(
$userSettings,
$validKeys,
'strcmp'
);
print_r($filteredSettings);
Array
(
[homepage] => https://gitbox.net/home
[profile] => https://gitbox.net/user/profile
)
array_filter မှတဆင့်တန်ဖိုးရှိ URL ၏ပင်မဒိုမိန်းအမည်အမည်ကိုပထမဆုံး filter ။
array_keys လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသောအဓိကအမည်များကိုထုတ်ယူသည်။
ထိုအခါ array_flip နှင့် array_intersect_ukey မှတဆင့်ဒေတာကိုထုတ် filter ။
ဤနည်းလမ်းသည်သက်ဆိုင်ရာသော့များကို တန်ဖိုးရှိသည့်ယုတ္တိဗေဒဆိုင်ရာအချို့သောယုတ္တိဗေဒ အရလေ့လာသုံးသပ်ခြင်းများကိုတန်ဖိုးထားရန်ခွင့်ပြုထားသည်။