array_diff_key () သည် PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီးနှစ်ခုကိုအရေးယူမှုများနှင့်နှိုင်းယှဉ်။ ကွဲပြားခြားနားသောသော့ချက်များဖြင့်ပြန်ပို့သည်။ ၎င်း၏လုပ်ဆောင်ချက်များကိုရိုးရှင်းစွာပုံရသည်, သို့သော်အမှန်တကယ်အသုံးပြုစဉ်အတွင်းတစ်ခါတစ်ရံတွင်၎င်းသည်ကောင်းမွန်စွာအလုပ်လုပ်လိမ့်မည်မဟုတ်ပါ။ ဤဆောင်းပါးသည်သင်နှင့်သက်ဆိုင်သောပြ problems နာများကိုပိုမိုကောင်းမွန်သောပြ problems နာများ ပြ problems နာများကိုဖြေရှင်းရန်နှင့်ဖြေရှင်းရန်အတွက်၎င်းတို့၏အဖြေများကိုမိတ်ဆက်ပေးလိမ့်မည်။
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 တွင်မပေါ်ပါ။
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);
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;
တစ်ခါတစ်ရံတွင်ခင်းကျင်းခြင်း၏အဓိကအကြောင်းရင်းများတွင်မမြင်ရသောဇာတ်ကောင်များ, 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);
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);
Array_Diff_Key () သည်အလွန်အသုံးဝင်သော PHP function တစ်ခုဖြစ်သည်။ ဘုံအမှားများကိုနားလည်ခြင်းနှင့်ဤပြ problems နာများကိုထိရောက်စွာဖြေရှင်းခြင်းကသင်၏ဖွံ့ဖြိုးတိုးတက်မှုကိုပိုမိုချောချောမွေ့မွေ့ဖြည့်ဆည်းနိုင်အောင်ကူညီနိုင်သည်။ အဓိကအကြောင်းဖော်ပြချက်အမျိုးအစားသည်တသမတ်တည်းရှိပြီးရည်ညွှန်းချက်ကိုရှောင်ကြဉ်ခြင်း, အထူးအက္ခရာများကိုသန့်ရှင်းရေးပြုလုပ်ခြင်း,
ဤဆောင်းပါး၏နိဒါန်းသည် array_diff_key () ၏အလားအလာရှိသောပြ problems နာအချို့ကိုနားလည်ရန်နှင့်ဖြေရှင်းနည်းများကိုပေးနိုင်ရန်ကူညီနိုင်သည်ဟုမျှော်လင့်ပါ။