လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Multi-Multi-Condition ဖယ်ထုတ်ရန် Array_diff () နှင့် in_array () ကိုသုံးပါ

Multi-Multi-Condition ဖယ်ထုတ်ရန် Array_diff () နှင့် in_array () ကိုသုံးပါ

M66 2025-06-06

နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာစီစစ်ခြင်းဆိုသည်မှာအထူးသဖြင့်အသုံးပြုသူ inputs များကိုပြုပြင်သည့်အခါ, ဒေတာအစုတခုမှ Blacklisted အသုံးပြုသူများ, အရည်အချင်းမပြည့်မှီသောထုတ်ကုန်များ, ယခုအချိန်တွင် PHPT TwoTs arraiff () နှင့် in_Diff () နှင့် in_Darray () သည် အသုံးဝင်သည်။

1 ။ array_diff ၏အခြေခံအသုံးပြုမှု ()

Array_diff () သည်ခင်းကျင်းမှုတစ်ခု၏တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်, ပထမခင်းကျင်းမှုတွင်တန်ဖိုးများကိုပြန်လှည့ ်. သော်လည်းအခြား arrays တွင်မပါ 0 င်ပါ။ ဥပမာအားဖြင့်:

 $allUsers = ['alice', 'bob', 'charlie', 'david'];
$blacklist = ['bob', 'david'];

$filteredUsers = array_diff($allUsers, $blacklist);

print_r($filteredUsers);
// ထုတ်လုပ်ခြင်း: ['alice', 'charlie']

ဤဥပမာတွင် Bob နှင့် David တို့သည်နာမည်ပျက်စာရင်းအဖွဲ့ဝင်များဖြစ်ပြီး၎င်းတို့ကိုမူရင်းအချက်အလက်များမှ array_diff () မှဖယ်ထုတ်လိုက်သည်။

2 ။ In_Array () ၏အရန်စိစစ်အတည်ပြု

in_array () သည် တန်ဖိုးတစ်ခုတွင်တန်ဖိုးတစ်ခုရှိ, မရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ ဒီ function ဟာတ ဦး တည်းတရားစီရင်ရာသို့မဟုတ်ယုတ္တိအခြေအနေအနေဖြင့်အလွန်အသုံးဝင်သည်။

ဥပမာအားဖြင့်, အချက်အလက်များကိုဖြတ်သန်းသွားသောအခါအချို့သောပစ္စည်းများကို actionally ဖယ်ထုတ်ရန်လိုအပ်ပါက၎င်းကိုဤကဲ့သို့သောရေးနိုင်သည်။

 $exclusions = ['spam', 'banned'];

$itemType = 'spam';

if (!in_array($itemType, $exclusions)) {
    echo "ဒီပစ္စည်း၏အပြောင်းအလဲနဲ့ခွင့်ပြုပါ";
} else {
    echo "ဒီပစ္စည်းကိုဖယ်ထုတ်လိုက်ပြီ";
}

3 ။ ပေါင်းစပ်အသုံးပြုမှု - Multi အခြေအနေဖယ်ထုတ်ခြင်းပုံစံ

ယခုအခါပိုမိုလက်တွေ့ကျပုံဥပမာကိုကြည့်ကြပါစို့။ array_diff () နှင့် in_rarray) ကိုပေါင်းစပ်ပြီး Multi-Condition Excription Excription ကိုရရှိရန်နှင့်ဒေတာပြုပြင်ခြင်းစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်

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

  1. шаншаншанташစာရေးဆရာများဖယ်ထုတ်ပါ

  2. မူကြမ်း အခြေအနေနှင့်အတူဆောင်းပါးများကိုဖယ်ထုတ်ပါ

  3. ဆောင်းပါးများကို "Sensitive" သော့ချက်စာလုံးများဖြင့်ဆောင်းပါးများကိုထုတ်ပယ်ပါ

ငါတို့လုပ်နိုင်တယ် -

 $articles = [
    ['title' => 'ဆောင်းပါး1', 'author' => 'tom', 'status' => 'published', 'tags' => ['php', 'web']],
    ['title' => 'ဆောင်းပါး2', 'author' => 'jack', 'status' => 'draft', 'tags' => ['php', 'အာရုံများကိုထိခိုက်လွယ်သော']],
    ['title' => 'ဆောင်းပါး3', 'author' => 'lucy', 'status' => 'published', 'tags' => ['laravel']],
    ['title' => 'ဆောင်းပါး4', 'author' => 'bob', 'status' => 'published', 'tags' => ['အာရုံများကိုထိခိုက်လွယ်သော']],
];

$blacklistedAuthors = ['bob', 'jack'];
$excludedStatus = ['draft'];
$sensitiveTags = ['အာရုံများကိုထိခိုက်လွယ်သော'];

$filtered = array_filter($articles, function ($article) use ($blacklistedAuthors, $excludedStatus, $sensitiveTags) {
    // Blacklist စာရေးဆရာများဖယ်ထုတ်ပါ
    if (in_array($article['author'], $blacklistedAuthors)) {
        return false;
    }

    // တိကျတဲ့ status ကိုဖယ်ထုတ်ပါ
    if (in_array($article['status'], $excludedStatus)) {
        return false;
    }

    // 排除含有အာရုံများကိုထိခိုက်လွယ်သော标签的ဆောင်းပါး
    foreach ($article['tags'] as $tag) {
        if (in_array($tag, $sensitiveTags)) {
            return false;
        }
    }

    return true;
});

print_r($filtered);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [0] => Array
        (
            [title] => ဆောင်းပါး1
            [author] => tom
            [status] => published
            [tags] => Array
                (
                    [0] => php
                    [1] => web
                )
        )

    [2] => Array
        (
            [title] => ဆောင်းပါး3
            [author] => lucy
            [status] => published
            [tags] => Array
                (
                    [0] => laravel
                )
        )
)

4 ။ စွမ်းဆောင်ရည်အကောင်းဆုံးအကြံပြုချက်များ

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

  • Expliscs ကို hash table (i.e. , key-value pair for pair form) သို့ဖယ်ထုတ်ခြင်းများကိုညှိနိုင်သည်။

ဥပမာအားဖြင့်:

 $blacklistedAuthors = array_flip(['bob', 'jack']);

if (isset($blacklistedAuthors[$article['author']])) {
    return false;
}

ISSET ၏စွမ်းဆောင်ရည် () ၏စွမ်းဆောင်ရည်သည်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းက 0 န်ကြီးချုပ်များထက် ပို. ကောင်းသည်။

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

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