PHP တွင် array_diff_ey () သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော arrays များကိုနှိုင်းယှဉ်ခြင်းအတွက် function တစ်ခုဖြစ်သည်။ ၎င်းသည်ခင်းကျင်းမှု၏သော့များကိုတန်ဖိုးမထား, ဤလုပ်ဆောင်ချက်သည်ပထမခင်းကျင်းမှုတွင်ပါ 0 င်သော array တစ်ခုသို့ရောက်သော်လည်းအခြားခင်းကျင်းမှုများတွင်မဟုတ်ပါ။
array_diff_ey () ၏အပြုအမူကိုနားလည်ခြင်းသည်အထူးသဖြင့်ရှုပ်ထွေးသော Accessive Arrays နှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်အသိုက်ခင်းကျင်းမှုများကိုကိုင်တွယ်သောအခါအထူးသဖြင့်အရေးကြီးသည်။
array_diff_ey () function ကို၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1 နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံးခင်းကျင်းဖြစ်ပါတယ်။
$ array2, ... $ arrays သည် ပထမဆုံးခင်းကျင်းမှုနှင့်နှိုင်းယှဉ်လျှင်အခြား array များဖြစ်သည်။
function သည် ဒေါ်လာ array 1 တွင်တည်ရှိသည့်သော့ချက်တန်ဖိုးအတွဲများပါ 0 င်သော array အသစ်တစ်ခုကိုပြန်လည်ရောက်ရှိစေသော်လည်းအခြားခင်းကျင်းမှုများတွင်မတည်ရှိပါ။
သာမန် 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 တွင်သော့ကိုပြန်ပို့သည်။ ဤနေရာတွင်နှိုင်းယှဉ်ခြင်းသည်တန်ဖိုးမဟုတ်ဘဲသော့ချက်အမည်ဖြင့်သာအခြေခံသည်ကိုသတိပြုပါ။
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 နေကြသည်ဟုပြောနိုင်ပါတယ်။
သတိပြုသင့်သည် 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 () အသိုက်ထည့်သွင်းထားသောအရာများနှင့်နှိုင်းယှဉ်ပါကအတွင်းပိုင်းသော့များကိုလည်းမှန်ကန်စွာနှိုင်းယှဉ်နိုင်သည်။
Array_Diff_Key () ကိုအဓိကအားဖြင့် Arrays ၏သော့များကိုအဓိကကျသောနေရာများနှင့်နှိုင်းယှဉ်ရန်အဓိကအားဖြင့်အသုံးပြုသည်။
အသိုက် Arrays အတွက် array_diff_ey () သည် အပြင်ဘက်သော့များကိုသာနှိုင်းယှဉ်နိုင်လိမ့်မည်။
သငျသညျအသိုက်တိုက်ခန်းများ၏သော့များကိုပြန်လည်ဖွဲ့စည်းရန်လိုအပ်ပါကထုံးစံအတိုင်းပြန်လည်လုပ်ဆောင်မှုများဖြင့်သင်လုပ်နိုင်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် array_diff_key () ၏အမူအကျင့်ကိုနားလည်ခြင်းနှင့်အသိုက်ထည့်သွင်းထားသော array တွင်၎င်း၏လျှောက်လွှာသည်အလွန်အရေးကြီးသည်။ ၎င်းသည်ဒေတာများကိုပြောင်းလွယ်ပြင်လွယ်စေရန်အတွက်ကျွန်ုပ်တို့အားကူညီရန်နှင့်နောက်ထပ်စစ်ဆင်ရေးများအတွက်တိကျသောတပ်ဆင်ရေးဖွဲ့စည်းပုံကိုထောက်ပံ့ပေးသည်။