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

array_diff_key () အပေါင်းအသင်းခင်းကျင်းမှုတွင်ပေါင်းစည်းထားသော Arrays နှင့်အတူဆက်ဆံရေး

M66 2025-05-15

PHP တွင် array_diff_ey () သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော arrays များကိုနှိုင်းယှဉ်ခြင်းအတွက် function တစ်ခုဖြစ်သည်။ ၎င်းသည်ခင်းကျင်းမှု၏သော့များကိုတန်ဖိုးမထား, ဤလုပ်ဆောင်ချက်သည်ပထမခင်းကျင်းမှုတွင်ပါ 0 င်သော array တစ်ခုသို့ရောက်သော်လည်းအခြားခင်းကျင်းမှုများတွင်မဟုတ်ပါ။

array_diff_ey () ၏အပြုအမူကိုနားလည်ခြင်းသည်အထူးသဖြင့်ရှုပ်ထွေးသော Accessive Arrays နှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်အသိုက်ခင်းကျင်းမှုများကိုကိုင်တွယ်သောအခါအထူးသဖြင့်အရေးကြီးသည်။

1 ။ အခြေခံအယူအဆ: array_diff_ey () function ကို

array_diff_ey () function ကို၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff_key(array $array1, array $array2, array ...$arrays): array
  • $ array1 နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံးခင်းကျင်းဖြစ်ပါတယ်။

  • $ array2, ... $ arrays သည် ပထမဆုံးခင်းကျင်းမှုနှင့်နှိုင်းယှဉ်လျှင်အခြား array များဖြစ်သည်။

  • function သည် ဒေါ်လာ array 1 တွင်တည်ရှိသည့်သော့ချက်တန်ဖိုးအတွဲများပါ 0 င်သော array အသစ်တစ်ခုကိုပြန်လည်ရောက်ရှိစေသော်လည်းအခြားခင်းကျင်းမှုများတွင်မတည်ရှိပါ။

2 ။ သာမန် arrays လုပ်ငန်းစဉ်

သာမန် Non-Non- လည်ပင်းမရှိသော arrays များအတွက် array_diff_ey () သည် မျှော်လင့်ထားသည့်သော့များကိုနှိုင်းယှဉ်ထားသည်။ ဥပမာအားဖြင့်:

 $array1 = ['a' => 1, 'b' => 2, 'c' => 3];
$array2 = ['b' => 2, 'd' => 4];

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

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [a] => 1
    [c] => 3
)

array_diff_key () $ array2 တွင်မပါ 0 င်သော $ array1 တွင်သော့ကိုပြန်ပို့သည်။ ဤနေရာတွင်နှိုင်းယှဉ်ခြင်းသည်တန်ဖိုးမဟုတ်ဘဲသော့ချက်အမည်ဖြင့်သာအခြေခံသည်ကိုသတိပြုပါ။

3 ။ အသိုက် Arrays ကိုကိုင်တွယ်

array_diff_key () သို့အသိုက်ခင်းကျင်းသည့်အခါအမှုအရာပိုမိုရှုပ်ထွေးလာသောအခါ။ အသိုက်ခင်းကျင်းခြင်း၏အောက်ပါဥပမာကိုသုံးသပ်ကြည့်ပါ။

 $array1 = [
    'a' => ['name' => 'John', 'age' => 25],
    'b' => ['name' => 'Jane', 'age' => 30],
    'c' => ['name' => 'Tom', 'age' => 22]
];
$array2 = [
    'b' => ['name' => 'Jane', 'age' => 30],
    'd' => ['name' => 'Alex', 'age' => 28]
];

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

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [a] => Array
        (
            [name] => John
            [age] => 25
        )
    [c] => Array
        (
            [name] => Tom
            [age] => 22
        )
)

ဤဥပမာတွင် array_diff_key () သည် ပြင်ပခင်းကျင်းခြင်း ( A , B , C) ၏သော့များကို (A, B, C ) ကိုအခြားခင်းကျင်းခြင်းရှိမရှိနှင့်နှိုင်းယှဉ်သည်။ သော့ ကို $ array 2 တွင်ပေါ်လာသည့်အခါ၎င်းကို array 1 မှဖယ်ထုတ်ထားသည်။ ဤနေရာတွင် Inner အသိုက်ခင်းကျင်း ( "a '' => '=>' John ',' John '=> 25] ) သည်သီးခြားစီမနှိုင်းယှဉ်ပါ။ ကျနော်တို့ကသော့ နှင့် c ကို reserved နေကြသည်ဟုပြောနိုင်ပါတယ်။

4 ။ အသိုက်ခင်း arrays နှင့်နက်ရှိုင်းသောအဆင့်များအကြားနှိုင်းယှဉ်

သတိပြုသင့်သည် array_diff_key () သည် အသိုက်ထည့်သွင်းထားသောသော့ချက်များကိုပြန်လည်ဖွဲ့စည်းခြင်းမရှိသေးပါ။ အကယ်. သင်ပိုမိုနက်ရှိုင်းသော array keys ကိုလိုချင်လျှင်, သင် recursive function များကိုအသုံးပြုရန်သို့မဟုတ်လက်ဖြင့်ကိုင်တွယ်ရန်လိုအပ်သည်။ ဤတွင် recursion ၏ဥပမာတစ်ခုဖြစ်ပါတယ်:

 function array_diff_key_recursive($array1, $array2) {
    $result = array_diff_key($array1, $array2);
    
    foreach ($result as $key => $value) {
        if (is_array($value)) {
            $result[$key] = array_diff_key_recursive($value, $array2);
        }
    }
    
    return $result;
}

$array1 = [
    'a' => ['name' => 'John', 'age' => 25, 'address' => ['city' => 'New York', 'zip' => '10001']],
    'b' => ['name' => 'Jane', 'age' => 30],
    'c' => ['name' => 'Tom', 'age' => 22]
];
$array2 = [
    'b' => ['name' => 'Jane', 'age' => 30]
];

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

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [a] => Array
        (
            [name] => John
            [age] => 25
            [address] => Array
                (
                    [city] => New York
                    [zip] => 10001
                )
        )
    [c] => Array
        (
            [name] => Tom
            [age] => 22
        )
)

ဤ recarsive အကောင်အထည်ဖော်မှုတွင်ကျွန်ုပ်တို့သည် array_diff_key () အသိုက်ထည့်သွင်းထားသောအရာများနှင့်နှိုင်းယှဉ်ပါကအတွင်းပိုင်းသော့များကိုလည်းမှန်ကန်စွာနှိုင်းယှဉ်နိုင်သည်။

5 ။ အကျဉ်းချုပ်

  • Array_Diff_Key () ကိုအဓိကအားဖြင့် Arrays ၏သော့များကိုအဓိကကျသောနေရာများနှင့်နှိုင်းယှဉ်ရန်အဓိကအားဖြင့်အသုံးပြုသည်။

  • အသိုက် Arrays အတွက် array_diff_ey () သည် အပြင်ဘက်သော့များကိုသာနှိုင်းယှဉ်နိုင်လိမ့်မည်။

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

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