လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အရာဝတ်ထုတစ်ခုကို array_diff_key () ကိုအငြင်းပွားစရာအဖြစ်သုံးနိုင်သည်။

အရာဝတ်ထုတစ်ခုကို array_diff_key () ကိုအငြင်းပွားစရာအဖြစ်သုံးနိုင်သည်။

M66 2025-06-06

PHP တွင် array_diff_key () တွင် array array () သည် array နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောနေရာများအကြားအဓိကကွဲပြားခြားနားမှုများ, သို့သော်များစွာသော developer များစွာသည်အရာဝတ်ထုတစ်ခုကို parameter တစ်ခုအဖြစ်လုပ်ဆောင်မှုသို့ကူးပြောင်းနိုင်မလားဆိုတာသိလိုကြပေမည်။ ဒီနေ့ဒီကိစ်စကိုအသေးစိတ်ဆွေးနွေးကြပါစို့။

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

array_diff_ey () function သည် parameters နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောပြင်ဆင်မှုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုယူပြီးပထမခင်းကျင်းမှုတွင်တည်ရှိနေသောသော့အသစ်များကိုပြန်လည်ထည့်သွင်းထားသော်လည်းအခြားခင်းကျင်းမှုများတွင်မတည်ရှိပါ။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff_key(array $array1, array ...$arrays): array

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

 $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['a' => 4, 'd' => 5];
$result = array_diff_key($array1, $array2);
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [b] => 2
    [c] => 3
)

ဤဥပမာတွင် $ ရလဒ် ခင်းကျင်းမှုတွင် ဒေါ်လာ array1 တွင် သော့ချက်များတွင်သော့ချက်များ 'B' နှင့် C ' ပါ 0 င်သည်။

အရာဝတ်ထုတစ်ခု array_diff_key () ကိုအငြင်းအခုံအဖြစ်အသုံးပြုနိုင်သလား?

array_diff_key () ၏ function လက်မှတ် () ၏ function ကိုလက်မှတ် () parameter သည် array type အမျိုးအစား ( Array ) ဖြစ်ရန်အတိအလင်းလိုအပ်သည်။ ထို့ကြောင့် parameter သည်အမှားတစ်ခုဖြစ်ပေါ်စေမည့်အရာဝတ်ထုကိုတိုက်ရိုက်ဖြတ်သန်းခြင်း။ ဥပမာအားဖြင့်:

 $obj1 = (object)['a' => 1, 'b' => 2];
$obj2 = (object)['a' => 4, 'd' => 5];

$result = array_diff_key($obj1, $obj2);  // အမှား!

$ OBJ1 နှင့် $ obj2 သည်အရာဝတ်ထုများမဟုတ်ဘဲဤကုဒ်သည်အမှားတစ်ခုဖြစ်သောကြောင့်ဖြစ်သည်။

ဖြေရှင်းချက် - အရာဝတ်ထုများကို array သို့ပြောင်းပါ

အရာဝတ်ထုကို array_diff_key () သို့တိုက်ရိုက်မကူးနိုင်သော်လည်းအရာဝတ်ထုကိုအရာဝတ်ထုတစ်ခုသို့ပြောင်းလဲခြင်းဖြင့်ဤပြ problem နာကိုဖြေရှင်းနိုင်သည်။ PHP သည်သရုပ်ဆောင်ခြင်းကဲ့သို့သောအရာဝတ်ထုမှခင်းကျင်းပြောင်းလဲခြင်းကိုအကောင်အထည်ဖော်ရန်နည်းလမ်းအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။

 $obj1 = (object)['a' => 1, 'b' => 2];
$obj2 = (object)['a' => 4, 'd' => 5];

// တစ်ခုခင်းကျင်းဖို့ပြောင်းပါ
$array1 = (array)$obj1;
$array2 = (array)$obj2;

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

ထုတ်လုပ်မှု -

 Array
(
    [b] => 2
)

မှတ်သားရန်အရာ

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

  2. အရာဝတ်ထုနည်းလမ်းများ - array_diff_ey () သည် ခင်းကျင်းခြင်း၏သော့များကိုသာဂရုပြုလေဖြစ်သည်။

  3. အရာဝတ်ထုရှုပ်ထွေးမှု - ရှုပ်ထွေးသောအရာဝတ်ထုများအတွက် (ထိုကဲ့သို့သောအသိုက်အရာဝတ္ထုများသို့မဟုတ် array များပါ 0 င်သောအရာများ) အတွက်သင်၏ပြန်လည်ထူထောင်ရေးအဖြစ်သို့ပြောင်းလဲရန်လိုအပ်နိုင်သည်။

အကျဉ်းချုပ်

  • array_diff_ey () အရာဝတ်ထုများကို parameters များအဖြစ်တိုက်ရိုက်လက်မခံနိုင်ပါ။

  • အရာဝတ်ထုများကို parameters များအဖြစ်အသုံးပြုလိုပါကအရာဝတ်ထုများကို array တစ်ခုထဲသို့ပြောင်းလဲပြီး၎င်းကိုလုပ်ရန် array_diff_ey () ကို သုံးနိုင်သည်။

  • ပြောင်းလဲခြင်း, အရာဝတ်ထု၏ဂုဏ်သတ္တိများသည်သင်၏လိုအပ်ချက်များကိုအထူးသဖြင့်ပုဂ္ဂလိကပိုင်သို့မဟုတ်ကာကွယ်ထားသည့်ဂုဏ်သတ္တိများပါ 0 င်သည်။

ဤနည်းအားဖြင့်သင်သည် array_diff_ey () ကို သုံး. အရာဝတ်ထုများနှင့် array များအကြားကွဲပြားခြားနားမှုများကိုလွယ်ကူစွာကိုင်တွယ်နိုင်သည်။ ဒီဆောင်းပါးကသင့်ကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။