လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Array filtering လုပ်ရန် Array_Flip () array_intersect_key () ကိုသုံးပါ

Array filtering လုပ်ရန် Array_Flip () array_intersect_key () ကိုသုံးပါ

M66 2025-05-14

နေ့စဉ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် "whitelist keys" (သို့) "Blacklist သော့ချက်သော့များ" အပေါ် အခြေခံ. Array များကို filter လုပ်ရန်လိုအပ်သည်။ PHP မှပေးသော array_flip () နှင့် array_intersect_key () လုပ်ဆောင်ချက်များကို PHP မှပေးသောလုပ်ဆောင်ချက်များသည်ဤလိုအပ်ချက်ကိုအလွန်ထိရောက်စွာရရှိနိုင်ပါသည်။ ဤဆောင်းပါးသည် array filtering ၏လုပ်ငန်းတာဝန်ကိုပြီးမြောက်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးရန်တိကျသောကုဒ်နမူနာများကိုအသုံးပြုလိမ့်မည်။

1 ။ နိဒါန်း

1 ။ array_flip ()

ဤလုပ်ဆောင်ချက်သည်သော့ချက်များနှင့်တန်ဖိုးများကိုခင်းကျင်းရန် swap လုပ်ရန်အသုံးပြုသည်။

 array_flip(array $array): array
  • Input: array တစ်ခု။

  • output: key valch pair တစုံကိုလှန်လိုက်ပြီးနောက်တွင်ခင်းကျင်းမှု (မှတ်ချက် - မူရင်းခင်းကျင်းမှု၏တန်ဖိုးသည်ထူးခြားသည်, သော့အတွက်စကေးတန်ဖိုးတစ်ခုအဖြစ်အသုံးပြုနိုင်သည်။

2 ။ array_intersect_key ()

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

 array_intersect_key(array $array, array ...$arrays): array
  • input: နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော arrays ။

  • Output: တစ်ချိန်တည်းမှာပင်နောက်ဆက်တွဲခင်းကျင်းမှုတွင်ပေါ်လာသောပထမခင်းကျင်းမှုတွင်သာဖော်ပြထားသည်။

2 ။ အသုံးပြုမှုအခြေအနေများဥပမာ

အသုံးပြုသူ input fields များကိုသာခွင့်ပြုထားသောသော့များကိုသာစစ်ဆေးပါ

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

 $userInput = [
    'username' => 'john_doe',
    'password' => '123456',
    'email' => 'john@example.com',
    'token' => 'abcd1234',  // တရားမဝင်လယ်ကွင်း
];

ကျွန်ုပ်တို့သည် "Username ' , ' Password '' နှင့် 'email' ကိုသာသိမ်းထားလိုပြီးအခြားသူများကိုစစ်ထုတ်သင့်သည်။

filtering ကိုအကောင်အထည်ဖော်ရန် Array_Flip () array_intersect_key () ကိုသုံးပါ။

 $allowedKeys = ['username', 'password', 'email'];

// ပြောင်းလဲခွင့်ပြုထားသောသော့ချက်များကိုသော့ချက်အမည်များသို့ပြောင်းပါ
$allowedKeysFlipped = array_flip($allowedKeys);

// လမ်းဆုံကိုရယူပါ,တူညီသောသော့နှင့်အတူလယ်ကွင်းထားပါ
$filteredInput = array_intersect_key($userInput, $allowedKeysFlipped);

print_r($filteredInput);

ရလဒ်ရလဒ် -

 Array
(
    [username] => john_doe
    [password] => 123456
    [email] => john@example.com
)

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

3 ။ Expand အသုံးပြုမှု: API parameters တွေကို filter လုပ်ပါ

သင် API interface ကိုတီထွင်ပြီးအောက်ပါ URL parameters များကိုလက်ခံရရှိသည်ဟုဆိုပါစို့။

 https://m66.net/api/user/update?username=jane&password=78910&is_admin=1

0 န ဆောင်မှုခံယူသူသည် is_admin ကဲ့သို့သောအထိခိုက်မခံသောအကွက်များကိုမပြုပြင်စေချင်ပါ

သင်ဤသို့လုပ်နိုင်သည် -

 $input = $_GET;

$allowed = ['username', 'password'];

$safeInput = array_intersect_key($input, array_flip($allowed));

// ယခု $safeInput သာခွင့်ပြုထားသောလယ်ကွင်းများပါရှိသည်

ဤနည်းလမ်းသည် API parameters တွေကို၏အဖြူရောင်ဝါဒီယန္တရားကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။

4 ။ အကျဉ်းချုပ်

Array_flip () နှင့် array_intesect_key () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်သော့ခတ်စစ်ဆင်ရေးကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤချဉ်းကပ်မှုသည် code နှင့်စွမ်းဆောင်ရည်မြင့်မားခြင်းသာမကထိန်းသိမ်းရန်လွယ်ကူသည်။ ၎င်းသည်ပုံစံပြုပြင်ခြင်း, API Parameter သည်စီစစ်ခြင်းနှင့်အခြားအခြေအနေများအတွက်သင့်တော်သည်။

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

 function filter_array_keys(array $data, array $allowedKeys): array {
    return array_intersect_key($data, array_flip($allowedKeys));
}

ဤနည်းအားဖြင့်သင်၏ကုဒ်သည် modular နှင့်ဖတ်နိုင်သည်။