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

array_diff_key () နှင့် array_keys နှင့်အတူအမှားအယွင်းများအသုံးပြုမှုဥပမာ

M66 2025-05-17

PHP, array_diff_ey () နှင့် array_keys () နှင့် array_keys () ကိုအသုံးပြုလေ့ရှိသည်။ ယခင်အမည်ရှိသည့်အဓိကအမည်ကွဲပြားမှုကိုနှိုင်းယှဉ်ရန်အသုံးပြုသည်။ အချို့သောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့သည်ရှုပ်ထွေးသောခင်းကျင်းဆင်မှုများကိုအကောင်အထည်ဖော်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုတစ်ချိန်တည်းတွင်သုံးနိုင်သည်။ သို့သော် array_diff_key () နှင့် array_keys () ကို အတူတကွအသုံးပြုသောအခါ, များသောအားဖြင့်အမှားအယွင်းများကိုဖြစ်ပေါ်စေသည်။ ဤဆောင်းပါးသည်သာမန်အမှားအယွင်းများမှတစ်ဆင့်အသေးစိတ်အချက်အလက်များကိုအသေးစိတ်လေ့လာပြီးဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။

array_diff_key () နှင့် array_keys ၏အခြေခံအသုံးပြုမှု

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

  • array_keys () function: array အတွက်သော့ချက်အမည်များအားလုံးခင်းကျင်းပြန်ပို့။

     $array = ["a" => 1, "b" => 2, "c" => 3];
    $keys = array_keys($array);
    print_r($keys);
    // ထုတ်လုပ်ခြင်း:Array ( [0] => a [1] => b [2] => c )
    
  • Array_Diff_Key () function: နှစ်ခု array နှစ်ခု၏အဓိကအမည်များကိုနှိုင်းယှဉ်ရန်နှင့်ကွဲပြားခြားနားသောကွဲပြားခြားနားသောအစိတ်အပိုင်းများကိုပြန်ပို့ရန်, ဆိုလိုသည်မှာပထမ ဦး ဆုံးခင်းကျင်း၌ရှိပေမယ့်ဒုတိယခင်းကျင်းအတွက်မဟုတ်ပေမယ့်ဒုတိယခင်းကျင်းအတွက်မဟုတ်ပေမယ့်ဒုတိယခင်းကျင်းအတွက်မဟုတ်ပေမယ့်ဒုတိယခင်းကျင်း။

     $array1 = ["a" => 1, "b" => 2, "c" => 3];
    $array2 = ["b" => 10, "c" => 20];
    $result = array_diff_key($array1, $array2);
    print_r($result);
    // ထုတ်လုပ်ခြင်း:Array ( [a] => 1 )
    

သာမန်အမှားဥပမာ

Error Erice Syment 1: array_keys () ကို သုံးပါ။

အဓိကအမည်ကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်သောအခါ developer များက Array ၏သော့အမည်ကိုရယူရန်အတွက် Array_keys () ကို ပထမ ဦး ဆုံးအသုံးပြုမည်။ အဘယ်ကြောင့်ဆိုသော် array_keys () သည် အဓိကအကြောင်းရင်း၏အဓိကအကြောင်းရင်းများမဟုတ်ဘဲသော့ချက်အမည်များကိုပြန်လည်ရောက်ရှိစေသောကြောင့်ဖြစ်သည်။ array_diff_ey () ကိုအသုံးပြုပြီးဤနည်းဖြင့်တိကျသောရလဒ်များကိုဖြစ်ပေါ်စေလိမ့်မည်။

 $array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["b" => 10, "c" => 20];

// မှားလမ်း
$keys1 = array_keys($array1);
$result = array_diff_key($keys1, $array2);
print_r($result);
// ထုတ်လုပ်ခြင်း:Array ( )

ပြ Proble နာခွဲခြမ်းစိတ်ဖြာခြင်း - array1 ၏သော့အမည်ရှိ array ["a", "ခ", "C" ကို "C" "," C "ကို $ keys1 တွင်သိမ်းဆည်းထားသည် Array_Diff_Key () ကို အဓိကအမည်များနှင့်နှိုင်းယှဉ်ထားသည်။ ဤအချိန် arraiff_yiff_ey () တွင် keys1 တွင်သော့ချက်အမည်များကိုနှိုင်းယှဉ်ခြင်းနှင့်နှိုင်းယှဉ်ခြင်းနှင့်ကိုက်ညီခြင်းမရှိပါ။

မှန်ကန်သောနည်းလမ်း - မူရင်းခင်းကျင်းမှုကိုနှိုင်းယှဉ်ရန် array_diff_ey () ကို တိုက်ရိုက်သုံးပါ။

 // လုပ်ဖို့မှန်ကန်သောနည်းလမ်း
$result = array_diff_key($array1, $array2);
print_r($result);
// ထုတ်လုပ်ခြင်း:Array ( [a] => 1 )

အမှားအယွင်း 2

နောက်ထပ်ဘုံအမှားတစ်ခုမှာတစ်ချိန်တည်းတွင်အခင်းအကျင်းနှစ်ခု၏အဓိကအမည်များနှင့်တန်ဖိုးများအကြားခြားနားချက်ကိုတွက်ချက်ရန်ဖြစ်သည်။ array_diff_ey () သည် သော့ချက်အမည်များကိုသာနှိုင်းယှဉ်မည်, သို့သော်အဓိကတန်ဖိုးများကိုသာနှိုင်းယှဉ်ပါလိမ့်မည်။ ထို့ကြောင့် အကယ်. သင်သည်တစ်ချိန်တည်းတွင်သော့နှင့်တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်လိုအပ်ပါကမမျှော်လင့်သောရလဒ်များရနိုင်သည်။

 $array1 = ["a" => 1, "b" => 2, "c" => 3];
$array2 = ["a" => 10, "b" => 2];

$result = array_diff_key($array1, $array2);
print_r($result);
// ထုတ်လုပ်ခြင်း:Array ( [c] => 3 )

ပြ Proble နာခွဲခြမ်းစိတ်ဖြာခြင်း - အထက်ဖော်ပြပါကုဒ်များတွင် array_diff_ey () သည် သော့ချက်အမည်များကိုသာနှိုင်းယှဉ်သည်။ သို့သော် Key ၏သက်ဆိုင်ရာတန်ဖိုးကိုမစဉ်းစားပါ။ ဒေါ်လာ array1 တွင် "a" နှင့် "ခ" နှစ်ခုလုံးသည် ဒေါ်လာ array2 တွင်အဓိကသော့ချက်နှင့်အတူတူပင်ဖြစ်သည်, ထို့ကြောင့်ခြားနားချက်မရှိပါ။ "C" ၏သော့အမည်မှာ ဒေါ်လာ array2 တွင်သော့ချက်အမည်နှင့်ကွဲပြားကြောင်းသာလျှင်၎င်းကိုပြန်ပို့ပါလိမ့်မည်။

ဖြေရှင်းချက် - အကယ်. သော့ချက်အမည်များကိုသင်နှိုင်းယှဉ်ချင်လျှင်, သို့သော်အဓိကတန်ဖိုးများကိုသင်နှိုင်းယှဉ်လိုပါက, array_diff_ey () အစား array_diff_Assoc () ကိုသုံးနိုင်သည်။ ၎င်းသည်အဓိကအမည်များနှင့်တန်ဖိုးများကိုတစ်ချိန်တည်းနှိုင်းယှဉ်နိုင်သည်။

 $result = array_diff_assoc($array1, $array2);
print_r($result);
// ထုတ်လုပ်ခြင်း:Array ( [a] => 1 [c] => 3 )

ဘာကြောင့်အမှားအယွင်းများလဲ

  1. လုပ်ဆောင်ချက်များကိုမှားယွင်းသောအသုံးပြုမှုကိုနားလည်ခြင်း - developer များသည် array_keys () array_diff_yiff_yiff_yiff_yiff_yiff_yiff_key ()) နှင့် array_diff_key () ၏အခန်းကဏ် w ကိုအပြည့်အဝနားမလည်ကြပါ။

  2. သော့နှင့်တန်ဖိုးများအကြားခြားနားချက်ကိုဂရုမစိုက်ပါနှင့် - array_diff_ey () သည် ခင်းကျင်း၏အဓိကအမည်များကိုနှိုင်းယှဉ်မည်မဟုတ်သော်လည်းအဓိကတန်ဖိုးများမပါဝင်ပါ။ ၎င်းကိုလျစ်လျူရှုခြင်းသည် developer များမှယုတ္တိသွေဖည်ခြင်းများကိုဖြစ်ပေါ်စေပြီးမလိုအပ်သောအမှားများကိုဖြစ်ပေါ်စေလိမ့်မည်။

  3. ကွဲပြားခြားနားသောခင်းကျင်းမှုအကြားဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာကွဲပြားခြားနားမှုများ - တစ်ခါတစ်ရံတွင်ခင်းကျင်းမှု၏ဖွဲ့စည်းပုံသည်ရှုပ်ထွေးပြီးရှုထောင့်အမျိုးမျိုးတပ်ဆင်ထားခြင်းသို့မဟုတ်ကွဲပြားသောသော့အမျိုးအစားများ (ဥပမာ strings များနှင့်နံပါတ်များ) ပါ 0 င်နိုင်သည်။ ဤအချိန်တွင်အမှားအယွင်းများကိုရှောင်ရှားရန်သင့်လျော်သောလုပ်ဆောင်ချက်များနှင့်နည်းလမ်းများကို အသုံးပြု. သင်ဂရုပြုသင့်သည်။

အကျဉ်းချုပ်

Array_Diff_Key () နှင့် array_keys () နှင့် array_keys () သည်အစွမ်းထက်သောခင်းကျင်းသောလုပ်ငန်းလည်ပတ်မှုနှစ်ခုဖြစ်သည်။ သူတို့ဘယ်လိုအလုပ်လုပ်ပုံကိုနားလည်သဘောပေါက်။ ဤလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာအသုံးပြုခြင်းနှင့်၎င်းတို့၏လုပ်ဆောင်ချက်များရှုပ်ထွေးမှုကိုရှောင်ရှားခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် array စစ်ဆင်ရေးများကိုပိုမိုကောင်းမွန်သောကိုင်တွယ်နိုင်ပြီးသာမန်အမှားများကိုရှောင်ရှားနိုင်သည်။ အကယ်. သော့ချက်အမည်များသာမကနှိုင်းယှဉ်လိုပါကမမျှော်လင့်သောရလဒ်များကိုရှောင်ရှားရန် array_diff_assoc () ကို အသုံးပြုရန်ရွေးချယ်နိုင်သည်။