လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_intersect_ukey နှင့် array_keys အသုံးပြုသောဥပမာများ

array_intersect_ukey နှင့် array_keys အသုံးပြုသောဥပမာများ

gitbox 2025-05-29

1 ။ နိဒါန်း

array_intersect_ukey

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

ဒီ function က ဒေါ်လာ array1 မှာရှိတဲ့ဒေါ်လာ array1 မှာရှိတဲ့သော့တွေပါ 0 င်တဲ့ခင်းကျင်းမှုတစ်ခုပါ 0 င်သည်။ သော့များ၏နှိုင်းယှဉ်နည်းလမ်း key_compare_func မှဆုံးဖြတ်သည်။

array_keys

 array_keys(array $array, mixed $search_value = null, bool $strict = false): array

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


2 ။ အမှန်တကယ်ကိစ္စတွင်ခွဲခြမ်းစိတ်ဖြာခြင်း

ကျွန်ုပ်တို့သည် 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 ' ဖြင့်သာသိမ်းဆည်းထားလို။ အခြားနယ်ပယ်များကိုစွန့်ပစ်သည်။


3 ။ filtering အောင်မြင်ရန် Array_keys နှင့် array_intersect_ukey ကိုသုံးပါ

အကောင်အထည်ဖော်မှုကုဒ်:

 $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]
)

ဥပမာ -

  1. Array_flip ($ lockfields) သည် အဓိကသော့ချက်ဖြစ်သည်။ မည်သည့် key_intersect_ukey အတွက်နှိုင်းယှဉ်မှုအရာဝတ်ထုတစ်ခုအဖြစ်အသုံးပြုနိုင်ရန်အတွက်ကျွန်ုပ်တို့တွင်ခင်းကျင်းရန်အတွက်အဓိကအမည်များကိုလှန်လှောကြည့်ရှုရန်လိုအပ်သည်။

  2. StrcMP ကိုနှိုင်းယှဉ်ခြင်း function ကိုနှိုင်းယှဉ်ကြည့်ပါ။

  3. နောက်ဆုံးရလဒ်မှာ $ Apittata key တွင် $ lockfields တွင်တည်ရှိသည့်နယ်ပယ်များဖြစ်သည်။


4 ။ နောက်ထပ် url ဒေတာအပြောင်းအလဲနဲ့ပေါင်းစပ်

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 ။

ဤနည်းလမ်းသည်သက်ဆိုင်ရာသော့များကို တန်ဖိုးရှိသည့်ယုတ္တိဗေဒဆိုင်ရာအချို့သောယုတ္တိဗေဒ အရလေ့လာသုံးသပ်ခြင်းများကိုတန်ဖိုးထားရန်ခွင့်ပြုထားသည်။