လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_diff_ey () မမှန်ကန်သောမကြာခဏမေးလေ့ရှိသောမေးခွန်းများ

array_diff_ey () မမှန်ကန်သောမကြာခဏမေးလေ့ရှိသောမေးခွန်းများ

M66 2025-05-15

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

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

array_diff_key () ကို အသုံးပြုတဲ့အခါမှာများသောအားဖြင့် array နှစ်ခုကို parameters တွေကို parrays အဖြစ်နှိုင်းယှဉ်လေ့ရှိတယ်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff_key(array $array1, array $array2): array

ဥပမာအားဖြင့်, အောက်ပါအတိုင်း array နှစ်ခုရှိပါတယ်ဆိုပါစို့:

 $array1 = [
    'apple' => 1,
    'banana' => 2,
    'cherry' => 3
];

$array2 = [
    'banana' => 2,
    'date' => 4
];

$result = array_diff_key($array1, $array2);
print_r($result);

ဤအချိန်တွင် $ ရလဒ် ရလဒ်မှာ -

 Array
(
    [apple] => 1
    [cherry] => 3
)

ဤဥပမာတွင် array_diff_key () သည် ဒေါ်လာ array1 တွင်အလယ်ဗဟိုတွင်အဓိကဖော်ပြချက်ကို ဒေါ်လာ array 2 တွင်မပေါ်ပါ။

2 ။ မကြာခဏမေးသောမေးခွန်းများနှင့်ပြ es နာဖြေရှင်းခြင်း

1 ။ အဓိကအမည်အမျိုးအစားများသည်ကိုက်ညီမှုမရှိပါ

array_diff_ey () သည်စာလုံးအကြီးအသေးအရေးအကြီးဖြစ်ရပ်မှန်များနှင့်အဓိကအမည်များကိုနှိုင်းယှဉ်သောအခါအမျိုးအစားသည်ရလဒ်ကိုအကျိုးသက်ရောက်သည်။ အသုံးအများဆုံးအခြေအနေသည်အဓိကအကြောင်းရင်းများ၏အမျိုးအစား (string သို့မဟုတ်နံပါတ်) သည်မမှန်မကန်နှိုင်းယှဉ်မှုရလဒ်များဖြစ်သည်။ ဥပမာအားဖြင့်:

 $array1 = [
    1 => 'apple',
    '2' => 'banana'
];

$array2 = [
    '1' => 'apple',
    2 => 'banana'
];

$result = array_diff_key($array1, $array2);
print_r($result);

အထက်ပါကုဒ်တွင် array_diff_ey () သည် 1 နှင့် '1' ကို 2 နှင့် '2' အဖြစ်သတ်မှတ်ရန် 1 နှင့် '1' ကိုစဉ်းစားလိမ့်မည်။ ထို့ကြောင့်ပြန်လာသောရလဒ်များသည်သင့်ကိုရှုပ်ထွေးစေနိုင်သည်။

WomeRound - နှိုင်းယှဉ်ထားသောခင်းကျင်းအတွင်းရှိသော့အမျိုးအစားများကိုသေချာအောင်လုပ်ပါ။ ဤပြ problem နာကိုအတိအလင်းဖော်ပြထားသောကျောက်တုံးအမျိုးအစားကိုခွဲခြားခြင်းဖြင့်ရှောင်ရှားနိုင်သည်။ ဥပမာအားဖြင့်, သော့ချက်အမည်များအားလုံးကိုကြိုးသို့မဟုတ်နံပါတ်များသို့ပြောင်းပါ။

 $array1 = array_map('strval', $array1);
$array2 = array_map('strval', $array2);
2 ။ ခင်းကျင်းအတွက်တန်ဖိုးကိုပြောင်းလဲပစ်သို့မဟုတ်ဖြတ်သန်း

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

 $array1 = [
    'apple' => 1,
    'banana' => 2
];

$array2 = &$array1;  // ရည်ညွှန်း Pass

$array2['apple'] = 3;

$result = array_diff_key($array1, $array2);
print_r($result);

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

WomeRoundround : arrays သို့ကိုးကားခြင်းမပြုရ။

 $array2 = $array1;
3 ။ သော့ချက်အမည်အထူးအက္ခရာများသို့မဟုတ်နေရာများပါရှိသည်

တစ်ခါတစ်ရံတွင်ခင်းကျင်းခြင်း၏အဓိကအကြောင်းရင်းများတွင်မမြင်ရသောဇာတ်ကောင်များ, tabs များသို့မဟုတ်အခြားထိန်းချုပ်မှုဇာတ်ကောင်များကဲ့သို့သောမမြင်ရသောဇာတ်ကောင်များပါ 0 င်နိုင်သည်။ ဤအက္ခရာများကိုအမြင်အာရုံဖြင့်ပြသမည်မဟုတ်ပါ, သို့သော် array_diff_key () ၏နှိုင်းယှဉ်မှုရလဒ်များကိုနှိုင်းယှဉ်ခြင်းအပေါ်အကျိုးသက်ရောက်လိမ့်မည်။ ဥပမာအားဖြင့်:

 $array1 = [
    'apple' => 1,
    ' banana' => 2
];

$array2 = [
    'apple' => 1,
    'banana' => 2
];

$result = array_diff_key($array1, $array2);
print_r($result);

အထက်ဖော်ပြပါကုဒ်သည် 'Banana' သည် ဒေါ်လာ array1 (ရှေ့မှောက်၌အာကာသနှင့်အတူအာကာသနှင့်အတူ) သည် 'Banana' သော့နှင့်မကိုက်ညီပါ။

WomeRoundound - မလိုအပ်သောနေရာများသို့မဟုတ်အထူးအက္ခရာများကိုဖယ်ရှားရန်သင် ဆေးလိပ် () သို့မဟုတ်ပုံမှန်စကားရပ်ကိုသုံးနိုင်သည်။

 $array1 = array_map('trim', $array1);
$array2 = array_map('trim', $array2);
4 ။ array_diff_ey () Multidimensional Arrays ကိုမထောက်ပံ့ပါ

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

 $array1 = [
    'fruits' => [
        'apple' => 1,
        'banana' => 2
    ]
];

$array2 = [
    'fruits' => [
        'banana' => 2
    ]
];

$result = array_diff_key($array1, $array2);
print_r($result);

ဤအချက်မှာ array_diff_ey () သည် 'အသီးများ' သော့ကိုမအောင်မြင်ပါ။ ၎င်းသည်ထိပ်တန်း-level key အမည်များကိုသာနှိုင်းယှဉ်သည်။

ဖြေရှင်းချက် - ဖက်စပ်ခင်းကျင်းမှုအမျိုးမျိုး၏သော့များကိုသင်နှိုင်းယှဉ်ရန်လိုအပ်ပါက၎င်းကိုအောင်မြင်ရန် recursive နည်းလမ်းများကိုသုံးနိုင်သည်။ multidimensional array များမှတဆင့်ဆက်သွယ်ရန်နှင့်အဓိကနှိုင်းယှဉ်မှုများပြုလုပ်ရန်သင့်အား Retursive function ကိုရေးနိုင်သည်။

 function recursive_diff_key($array1, $array2) {
    $result = [];
    foreach ($array1 as $key => $value) {
        if (!array_key_exists($key, $array2)) {
            $result[$key] = $value;
        } elseif (is_array($value)) {
            $result[$key] = recursive_diff_key($value, $array2[$key] ?? []);
        }
    }
    return $result;
}

$result = recursive_diff_key($array1, $array2);
print_r($result);

3 ။ နိဂုံးချုပ်

Array_Diff_Key () သည်အလွန်အသုံးဝင်သော PHP function တစ်ခုဖြစ်သည်။ ဘုံအမှားများကိုနားလည်ခြင်းနှင့်ဤပြ problems နာများကိုထိရောက်စွာဖြေရှင်းခြင်းကသင်၏ဖွံ့ဖြိုးတိုးတက်မှုကိုပိုမိုချောချောမွေ့မွေ့ဖြည့်ဆည်းနိုင်အောင်ကူညီနိုင်သည်။ အဓိကအကြောင်းဖော်ပြချက်အမျိုးအစားသည်တသမတ်တည်းရှိပြီးရည်ညွှန်းချက်ကိုရှောင်ကြဉ်ခြင်း, အထူးအက္ခရာများကိုသန့်ရှင်းရေးပြုလုပ်ခြင်း,

ဤဆောင်းပါး၏နိဒါန်းသည် array_diff_key () ၏အလားအလာရှိသောပြ problems နာအချို့ကိုနားလည်ရန်နှင့်ဖြေရှင်းနည်းများကိုပေးနိုင်ရန်ကူညီနိုင်သည်ဟုမျှော်လင့်ပါ။