ဒေတာထပ်တူပြုခြင်းမြင်ကွင်းတွင်သူတို့အကြားခြားနားချက်များကိုရှာဖွေရန်အတွက် array နှစ်ခုကိုနှိုင်းယှဉ်ဖို့လိုတယ်။ PHP သည် array နှိုင်းယှဉ်မှုအမျိုးမျိုးကိုထောက်ပံ့ပေးသည် ။
array_diff_assoc function ကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော inarray ခြားနားချက်ကိုတွက်ချက်ရန်အသုံးပြုသည်။ array_diff နှင့်မတူဘဲ၎င်းသည်ခင်းကျင်းမှု၏တန်ဖိုးများကိုနှိုင်းယှဉ်ရုံသာမကသော့များကိုလည်းနှိုင်းယှဉ်သည်။ တစ်နည်းပြောရလျှင် array_diff_assoc သည် array element များ၏သော့များနှင့်တန်ဖိုးများကိုထည့်သွင်းထားပြီးအခြားခင်းကျင်းမှုတွင်သော့နှင့်တန်ဖိုးများကိုထည့်သွင်းထားလိမ့်မည်။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
array array_diff_assoc(array $array1, array $array2, array ...$arrays)
အခြားခင်းကျင်းမှုတွင်မတည်ရှိသောပထမခင်းကျင်းမှုတွင် element များကိုပြန်ပို့သည် (သော့နှင့်တန်ဖိုးများသည်ကွဲပြားခြားနားသည်) ။
ဒေတာများကိုတစ်ပြိုင်တည်းချိန်ကိုက်သောအခါအချက်အလက်များ၏တိကျမှန်ကန်မှုကိုသေချာစေရန်, တူညီသောအကြောင်းအရာနှင့်အတူတူပင်ဖြစ်ပါစေ, ဥပမာအားဖြင့်, အသုံးပြုသူအချက်အလက်များကို array နှစ်ခုသည်တူညီသောတန်ဖိုးများဖြစ်သော်လည်းကွဲပြားခြားနားသောသော့များသည်ကွဲပြားခြားနားသောသော့များဖြစ်သည်, ဆိုလိုသည်မှာ data struction သည်ကိုက်ညီမှုမရှိပါ။
array_diff_Aff_Asso ၏အဓိကသော့ချက်နှင့်တန်ဖိုးနှစ်ဆနှိုင်းယှဉ်ချက်သည်မည်သည့်ဒေတာပစ္စည်းများပြောင်းလဲခြင်းနှင့်မည်သည့်ပစ္စည်းများကိုထည့်သွင်းခြင်း (သို့) ဖျက်ပစ်ခဲ့သည်ကိုတိကျစွာဖော်ပြသည်။
ဒေသခံဒေတာနှင့်ဝေးလံသောအချက်အလက်များကိုကိုယ်စားပြုသော arry နှစ်ခုရှိသည်ဆိုပါစို့။
<?php
$localData = [
'id' => 101,
'name' => 'Alice',
'email' => '[email protected]',
'status' => 'active'
];
$remoteData = [
'id' => 101,
'name' => 'Alice',
'email' => '[email protected]',
'status' => 'active'
];
// အသုံးပြု array_diff_assoc ကွဲပြားခြားနားသောဒေတာကိုရှာပါ
$diff = array_diff_assoc($localData, $remoteData);
print_r($diff);
?>
ထုတ်လုပ်မှု -
Array
(
[email] => [email protected]
)
ဤတွင်ဒေသခံနှင့်ဝေးလံခေါင်သီသောအချက်အလက်များရှိ အီးမေးလ် များတွင်ကွဲပြားခြားနားမှုများရှိကြောင်းရှင်းရှင်းလင်းလင်းဖော်ပြထားသည်။
node များစွာမှဒေတာများကိုထပ်တူပြုခြင်းကဲ့သို့သောခင်းကျင်းမှုမျိုးစုံကိုသင်နှိုင်းယှဉ်နိုင်သည်။
<?php
$base = ['a' => 1, 'b' => 2, 'c' => 3];
$compare1 = ['a' => 1, 'b' => 22, 'c' => 3];
$compare2 = ['a' => 1, 'b' => 2, 'c' => 33];
$diff = array_diff_assoc($base, $compare1, $compare2);
print_r($diff);
?>
ထုတ်လုပ်မှု -
Array
(
[b] => 2
[c] => 3
)
ဤနေရာတွင်အခြားခင်းကျင်းမှုတွင်သော့ ခ နှင့် C နှစ်ခုအကြားကွဲပြားခြားနားမှုများအကြောင်းဤလယ်ကွင်းများကိုဂရုပြုရန်လိုအပ်ကြောင်းသတိပေးသည်။
Array_diff_assoc သည်ဒေတာထပ်တူပြုခြင်းနှင့်ခြားနားချက်ခွဲခြမ်းစိတ်ဖြာအတွက်မရှိမဖြစ်လိုအပ်သောကိရိယာတစ်ခုဖြစ်သည်။ ဒေတာအစုနှစ်စီးသို့မဟုတ်နှစ်ခုထက်ပိုသောသော့များနှင့်တန်ဖိုးများအကြားကွဲပြားခြားနားမှုများကိုတိကျစွာခွဲခြားသိမြင်နိုင်သည်။