နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည် array နှစ်ခုနှိုင်းယှဉ်ရန်နှင့်သူတို့အကြားကွဲပြားခြားနားသောအရာများကိုရှာဖွေရန်လိုအပ်သည့်အခြေအနေများနှင့်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤအချိန်တွင်သင်သည် Array တွင်တည်ရှိသည့်ဒြပ်စင်များကိုသာရှာဖွေသော်လည်းအခြားခင်းကျင်းမှုတွင်မပါ 0 င်ပါက array_diff () function သည်လုံလောက်သည်။ ဒါပေမယ့်ငါတို့ထွက်ရှာဖို့လိုမယ်ဆိုရင် array_diff () ကို အနည်းငယ်ပေါင်းစပ်ဖို့လိုတယ်။
Layman ၏စည်းကမ်းချက်များတွင်အချိုးကျကွာခြားချက်များမှာနှစ်စုံ၌ ထပ်ခါတလဲလဲမဟုတ်သောဒြပ်စင်များ စုဆောင်းခြင်းဖြစ်သည်။ ဥပမာအားဖြင့်:
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
ဤရွေ့ကား arrays နှစ်ခု၏အဆော်လိုက်ရမ်းရေးကွာခြားချက်သည် [1, 2, 5, 6] ဤကိန်းဂဏန်းလေးခုတွင်ဤကိန်းဂဏန်းလေးခုတွင်တည်ရှိပြီးအခြားတစ်ခုတွင်မတည်ရှိပါ။
Array_diff () သည် ပထမခင်းကျင်းမှုတွင်ရှိသောတန်ဖိုးများကိုရှာဖွေနိုင်သော်လည်းအခြားခင်းကျင်းမှုများတွင်မဟုတ်ပါ။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် array_diff () ကို သုံးနိုင်သည်။
<?php
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
// ရှာတွေ့သည် array1 ရှိသည် array2 ဘာမှမ
$diff1 = array_diff($array1, $array2);
// ရှာတွေ့သည် array2 ရှိသည် array1 ဘာမှမ
$diff2 = array_diff($array2, $array1);
// နှစ်ခုကွဲပြားခြားနားအစုံများ၏ရလဒ်များကိုပေါင်းစည်း
$symmetricDifference = array_merge($diff1, $diff2);
print_r($symmetricDifference);
?>
output ကိုဖြစ်လိမ့်မည်:
Array
(
[0] => 1
[1] => 2
[4] => 5
[5] => 6
)
ဤနေရာတွင်သော့များသည်စဉ်ဆက်မပြတ်မဖြစ်နိုင်ပါ။ အကယ်. သင်ပြန်လည်အညွှန်းကိန်းကိုပြန်လည်အညွှန်းပြုလုပ်ရန်လိုအပ်ပါကဝါကျတစ်ခုထည့်နိုင်သည်။
$symmetricDifference = array_values($symmetricDifference);
သင်အသင်း 0 င်စနစ်တစ်ခုကိုတည်ဆောက်နေသည်ဆိုပါစို့။ ကွဲပြားခြားနားသောခွင့်ပြုချက်ဤနည်းဖြင့်တွေ့ရှိနိုင်သည်:
<?php
$userGroupA = ['read', 'write', 'delete'];
$userGroupB = ['read', 'export', 'import'];
$diff1 = array_diff($userGroupA, $userGroupB);
$diff2 = array_diff($userGroupB, $userGroupA);
$permissionDiff = array_merge($diff1, $diff2);
$permissionDiff = array_values($permissionDiff);
print_r($permissionDiff);
// ရလဒ်:['write', 'delete', 'export', 'import']
?>
နှစ် ဦး နှစ်ဖက်အပြန်အလှန်သီးသန့်ကွဲပြားခြားနားမှုနှစ်ခုကိုအချိုးကျကွဲပြားခြားနားမှုနှစ်ခုကိုပေါင်းစည်းသော်လည်း Array တွင် element များထပ်တူကျသည့်အပြင်ထပ်တူရလဒ်များကိုလည်းထုတ်လုပ်နိုင်သည်။ သငျ သညျ array_unique () deduplication ဖို့ထည့်သွင်းနိုင်ပါတယ်:
$symmetricDifference = array_unique(array_merge($diff1, $diff2));
array_diff () လုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အချိုးကျခြားနားချက်ကို arry နှစ်ခုကိုအလွယ်တကူရနိုင်သည်။ ဤနည်းလမ်းသည်ရှင်းလင်းပြတ်သားပြီးတိကျပြီးခွင့်ပြုချက်စနစ်များ, အချက်အလက်နှိုင်းယှဉ်ခြင်းနှင့်အခြားအခြေအနေများအတွက်အထူးသဖြင့်သင့်တော်သည်။
သင်ဤနည်းလမ်းကို functionability ကိုတိုးတက်စေရန် function တစ်ခုထဲသို့သင် encapsulate လုပ်နိုင်သည်။
function symmetric_diff(array $a, array $b): array {
return array_values(array_unique(array_merge(
array_diff($a, $b),
array_diff($b, $a)
)));
}
// နမူနာခေါ်ဆိုမှု
$result = symmetric_diff([1, 2, 3], [2, 3, 4]);
print_r($result); // ထုတ်လုပ်ခြင်း:[1, 4]
ဤအစွန်အဖျားသည်သင်၏ PHP စီမံကိန်းတွင်သင့်အားကူညီနိုင်လိမ့်မည်ဟုမျှော်လင့်ပါသည်။