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

array_diff () နှင့် array_filter () လုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းဖြင့်ပိုမိုရှုပ်ထွေးသောခင်းကျင်းစစ်ထုတ်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။

M66 2025-05-14

Daily Php Development တွင် Array များသည်အလွန်များသောအလုပ်ဖြစ်သည်။ မမှန်ကန်သောအချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ခြင်း , သီးခြားဒြပ်စင် များကို ဖယ်ရှားခြင်း, သူတို့ကိုတစ် ဦး တည်းအသုံးပြုခြင်းသည်အစွမ်းထက်ပြီးသားဖြစ်သော်လည်း၎င်းတို့ပေါင်းစပ်ထားသည့်အခါပိုမိုရှုပ်ထွေးပြီးပြောင်းလွယ်ပြင်လွယ်ခင်းကျင်းဆင်ခြင်းများကိုကျွန်ုပ်တို့အကောင်အထည်ဖော်နိုင်သည်။

ရှုပ်ထွေးသော Array filtering Logic ကိုအကောင်အထည်ဖော်ရန် Array_diff () နှင့် array_filter () array_filter () () array_filter () () array_filter () ကိုရှင်းပြရန်ဥပမာတစ်ခုကိုဤဆောင်းပါးသည်ဥပမာတစ်ခုကိုအသုံးပြုပါမည်။

1 ။ အခြေခံသုံးသပ်ချက်

array_filter ()

array_filter () ကို များသောအားဖြင့် callback function ကို အခြေခံ. စံသတ်မှတ်ချက်များနှင့်မကိုက်ညီသောခင်းကျင်းမှုတွင်တန်ဖိုးများကိုစစ်ထုတ်ရန်အသုံးပြုသည်။

 $numbers = [1, 2, 3, 4, 5];
$even = array_filter($numbers, function($n) {
    return $n % 2 === 0;
});
// $even = [1 => 2, 3 => 4]

array_diff ()

array_diff () ကိုအခြား arrays မရှိတဲ့ခင်းကျင်းမှုတစ်ခုမှာတန်ဖိုးအားလုံးကိုပြန်ပို့ပေးဖို့အသုံးပြုသည်။

 $all = ['apple', 'banana', 'cherry'];
$remove = ['banana'];
$result = array_diff($all, $remove);
// $result = [0 => 'apple', 2 => 'cherry']

2 ။ ပြ problem နာမြင်ကွင်း

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

  • မမှန်ကန်တဲ့ (သို့) မှားယွင်းစွာပုံစံချထားတဲ့ပစ္စည်းတွေကိုစစ်ထုတ်ဖို့ Array_Filter () ကို သုံးပါ။

  • ထို့နောက် array_diff () ကိုသုံးပါ။

  • နောက်ဆုံးအနေနဲ့နောက်ထပ်အပြောင်းအလဲနဲ့အတွက်အသုံးပြုနိုင်တဲ့သန့်ရှင်းတဲ့ခင်းကျင်း။

3 ။ လက်တွေ့ကျသောဥပမာများ

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

  1. null တန်ဖိုးများသို့မဟုတ်မှားယွင်းသောပုံစံများကိုဖယ်ရှားပါ။

  2. နာမည်ပျက်စာရင်းမှဒိုမိန်းအမည်များကိုဖယ်ထုတ်လိုက်သည်။

 $userUrls = [
    'https://m66.net/article/123',
    'http://example.com/test',
    '',
    'not_a_url',
    'https://m66.net/login',
    'https://blacklist.com/malicious',
];

$blacklistedDomains = ['blacklist.com'];

// ပထမခြေလှမ်း:အသုံးပြု array_filter() မမှန်ကန်သောရှင်းလင်းရေး URL
$validUrls = array_filter($userUrls, function($url) {
    return filter_var($url, FILTER_VALIDATE_URL);
});

// အဆင့် 2:ထုတ်ယူခြင်းသည်တရားဝင်ဖြစ်သည် URL ဒိုမိန်းအမည်,နှင့်အနက်ရောင် domain name ကိုထုတ် filter
$filteredUrls = array_filter($validUrls, function($url) use ($blacklistedDomains) {
    $host = parse_url($url, PHP_URL_HOST);
    return !in_array($host, $blacklistedDomains);
});

// $filteredUrls ယခုတရားဝင်နှင့်နာမည်ပျက်စာရင်းဝင်မဟုတ်ပါဘူး URL
print_r($filteredUrls);

output ရလဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 Array
(
    [0] => https://m66.net/article/123
    [1] => http://example.com/test
    [4] => https://m66.net/login
)

ဤနေရာတွင်ကျွန်ုပ်တို့အားနှစ်ကြိမ် array_filter () ကို အမှန်တကယ်အသုံးပြုခဲ့ကြောင်းသတိပြုပါ။ Domain Name List များအကြားကွဲပြားခြားနားမှုများကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက် Array_diff () ကို မိတ်ဆက်ပေးနိုင်သည်။

4 ။ array_diff () ကိုတိကျစွာဖယ်ထုတ်ထားရန်

URL မှဒိုမိန်းအမည်အားလုံးကိုပထမ ဦး ဆုံးထုတ်ယူနိုင်ပြီး Blacktist Domain Names မှဖယ်ထုတ်ရန် array_diff () ကို သုံးနိုင်သည်။

 $domains = array_map(function($url) {
    return parse_url($url, PHP_URL_HOST);
}, $validUrls);

$allowedDomains = array_diff($domains, $blacklistedDomains);

// နောက်တဖန် filter URL,သာပိုင်ဆိုင်မှုများကိုသာထိန်းသိမ်းထားသည် allowedDomains ၏
$finalUrls = array_filter($validUrls, function($url) use ($allowedDomains) {
    $host = parse_url($url, PHP_URL_HOST);
    return in_array($host, $allowedDomains);
});

print_r($finalUrls);

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

array_filter () နှင့် array_diff ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ရှုပ်ထွေးသောခင်းကျင်းရန်ပုံငွေအဖွဲ့စီစစ်ခြင်းယုတ္တိဗေဒကိုအလွန်စိတ်လှုပ်ရှားစရာကောင်းလောက်အောင်ကိုင်တွယ်နိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် -

  • array_filter () array elements များကိုအခြေအနေအလိုက်စစ်ဆေးရန်ပိုမိုသင့်တော်သည်။

  • array_diff () သည် မသိတဲ့မမှန်ကန်သောပစ္စည်းများသို့မဟုတ်လူမည်းစာရင်းများကိုဖယ်ထုတ်ရန်ပိုမိုသင့်တော်သည်။

  • နှစ်ခုကိုပေါင်းစပ်ခြင်းက element content ကိုစစ်ဆေးရုံသာမက Suns filtering ကိုလည်းသဘောပေါက်သည်။

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

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    array_filter