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

စိတ်ကြိုက်နှိုင်းယှဉ်မှုယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ရန် Array_udiff () ကိုသုံးပါ

M66 2025-06-06

PHP တွင် array_udiff () သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်စိတ်ကြိုက်နှိုင်းယှဉ်မှု function ကိုအသုံးပြုရန်ခွင့်ပြုသည့်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဆိုလိုသည်မှာကျွန်ုပ်တို့သည်ရိုးရှင်းသောတန်ဖိုးများ (သို့) အဓိကနှိုင်းယှဉ်မှုများအပေါ်မှီခိုခြင်းထက်သတ်သတ်မှတ်မှတ်စီးပွားရေးလိုအပ်ချက်များအပေါ် အခြေခံ. "တန်းတူ" သို့မဟုတ် "မညီမျှသော" တရားစီရင်ခြင်းဆိုင်ရာယုတ္တိဗေဒကိုဆိုလိုသည်။

array_udiff () ၏အခြေခံ syntax

 array_udiff(array $array1, array $array2, callable $value_compare_func): array
  • $ array1 : နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံးခင်းကျင်း။

  • $ array2 : ပထမ ဦး ဆုံးခင်းကျင်းနှင့်နှိုင်းယှဉ်ဖို့လိုအပ်တဲ့ဒုတိယ array ။

  • $ value_Compare_funct : အသုံးပြုသူသတ်မှတ်ထားသောနှိုင်းယှဉ်ခြင်း function ကို။

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

လက်တွေ့ကျသော application အခြေအနေများ

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

နမူနာကုဒ်

 // အသုံးပြုသူများသည်ယနေ့ logged
$todayUsers = [
    ['id' => 101, 'email' => 'alice@m66.net'],
    ['id' => 102, 'email' => 'bob@m66.net'],
    ['id' => 103, 'email' => 'carol@m66.net'],
];

// လွန်ခဲ့သောလကတက်ကြွစွာအသုံးပြုသူများ
$pastActiveUsers = [
    ['id' => 102, 'email' => 'bob@m66.net'],
    ['id' => 104, 'email' => 'dan@m66.net'],
];

// စိတ်ကြိုက်နှိုင်းယှဉ်လုပ်ဆောင်ချက်များ:သွား email အသုံးပြုသူအတူတူရှိမရှိဆုံးဖြတ်ရန်
function compareUsersByEmail($a, $b) {
    return strcmp($a['email'], $b['email']);
}

// ရှာတွေ့သည်“အသုံးပြုသူအသစ်များ”
$newUsers = array_udiff($todayUsers, $pastActiveUsers, 'compareUsersByEmail');

// ရလဒ်ရလဒ်
echo "အသုံးပြုသူအသစ်များ列表:\n";
foreach ($newUsers as $user) {
    echo "- {$user['email']} (ID: {$user['id']})\n";
}

ရလဒ်ရလဒ် -

 အသုံးပြုသူအသစ်များ列表:
- alice@m66.net (ID: 101)
- carol@m66.net (ID: 103)

သိကောင်းစရာများ - နှိုင်းယှဉ်လုပ်ဆောင်ချက်များကိုစိတ်ကြိုက်ပြင်ဆင်ခြင်းအတွက်မှတ်စုများ

  • array_udiff () နှင့်နှိုင်းယှဉ်ခြင်း function ကို integer ပြန်လာရမည် :

    • အနုတ်ကိန်းဂဏန်း - ပထမ ဦး ဆုံး parameter သည်ဒုတိယထက်သေးငယ်သည်။

    • 0: ဆိုလိုသည်မှာတန်ဖိုးနှစ်ခုသည်တန်းတူဖြစ်သည်။

    • အပြုသဘောဆောင်သောနံပါတ် - ဆိုလိုတာကပထမ ဦး ဆုံး parameter သည်ဒုတိယထက်ကြီးမြတ်သည်ဟုဆိုလိုသည်။

  • စိတ်ကြိုက်နှိုင်းယှဉ်မှု function တွင်, array element များ၏ဖွဲ့စည်းပုံကိုရှင်းရှင်းလင်းလင်းနားလည်ရန်နှင့် undefined keys ကိုမှရှောင်ရှားပါ။

လက်တွေ့ကျသောတိုးချဲ့မှု - Multi-Silvery နှိုင်းယှဉ်ခြင်း

အီးမေးလ်ပေါ် မူတည်. ကျွန်ုပ်တို့နှိုင်းယှဉ်လိုပါက ID တွင်လည်းနှိုင်းယှဉ်ချင်လျှင်, နှိုင်းယှဉ်ခြင်း function ကိုဤကဲ့သို့သောနှိုင်းယှဉ်နိုင်သည်။

 function compareUsersByIdAndEmail($a, $b) {
    $emailCompare = strcmp($a['email'], $b['email']);
    if ($emailCompare !== 0) {
        return $emailCompare;
    }
    return $a['id'] <=> $b['id'];
}

ဤ function ကို array_udiff () တွင်အသုံးပြုခြင်းသည်ပိုမိုသန့်ရှင်းသောခြားနားချက်နှိုင်းယှဉ်မှုများရရှိနိုင်သည်။

အကျဉ်းချုပ်

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

အသုံးပြုသူသတင်းအချက်အလက်, ထုတ်ကုန်များ, သစ်ထုတ်လုပ်ခြင်းစသဖြင့်ရှုပ်ထွေးသောစီးပွားရေးအချက်အလက်များကိုထုတ်လုပ်သည့်အခါ array_udiff () ကိုအသုံးပြုခြင်းသည်အရေးကြီးသောကျွမ်းကျင်မှုတစ်ခုဖြစ်သည်။