ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းဒေတာဘေ့စ်ရှိအကြောင်းအရာများကိုစစ်ဆေးရန်လိုအပ်သည့်နေရာများနှင့်သင်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ အထူးသဖြင့်ကွဲပြားခြားနားသောနယ်ပယ်နှစ်ခုတွင်ဒေတာအစုတစ်ခုတွင်တည်ရှိနိုင်သည့်အခါကျွန်ုပ်တို့သည်အချက်အလက်သတ်မှတ်ချက်၏သော့များကိုနှိုင်းယှဉ်ခြင်းဖြင့်ခြားနားချက်ကိုရှာတွေ့နိုင်သည်။ ယခုအချိန်တွင် PHP တွင် built-in array_diff_ukey function သည်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။
Array_diff_ukey သည် php မှပေးသော function တစ်ခုဖြစ်ပြီးနှစ်ခုထက်ပိုသော array များကိုနှိုင်းယှဉ်ရန်နှင့်သော့အမည်ရှိအစိတ်အပိုင်းများကိုရှာဖွေရန် (သော့) ကိုရှာဖွေရန်။ array_diff နှင့်မတူဘဲ Array_diff_ukey သည် developer များကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိရန်ကူညီနိုင်သည့် Array ခလုတ်များပေါ်တွင်အခြေခံသည်။
function ကိုလက်မှတ် :
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ array1 : ပထမ ဦး ဆုံးခင်းကျင်း။
$ array2 : ဒုတိယခင်းကျင်း။
$ key_compare_funct : array နှစ်ခု၏အဓိကအကြောင်းရင်းကိုနှိုင်းယှဉ်သော callback function ကို။
Array_diff_ukey သည် ဒေါ်လာ array1 တွင်တည်ရှိသည့်သော့ချက်တန်ဖိုးအတွဲများပါ 0 င်သည်။
ဒေတာဘေ့စ်တွင်ဒေတာစားပွဲနှစ်ခုရှိသောအချို့သောနယ်ပယ်များသည်အထူးသဖြင့်ဒေတာထပ်တူပြုခြင်းတွင်သဘာ 0 င်မှုရှိ, ကျွန်ုပ်တို့သည်ဖွဲ့စည်းတည်ဆောက်ပုံဆိုင်ရာကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်လိုအပ်သည့်အခါ array_diff_ukey function သည်လယ်ကွင်းအမည်များကိုရှာဖွေခြင်းအတွက်အလွန်ထိရောက်နိုင်သည်။
ကျွန်ုပ်တို့တွင်ဒေတာ 1 ခုဇယား 2 ခုရှိသည်ဆိုပါစို့။ ၎င်းတို့တွင်တူညီသောဒေတာဖွဲ့စည်းပုံပါ 0 င်သော ဇယားကွက် နှင့် ဇယား 2 ခု ရှိသည်ဆိုပါစို့။ လယ်ကွင်းအမည်များကွဲပြားခြားနားလျှင်, ကျွန်ုပ်တို့သည်သူတို့ကိုအချိန်မီရှာဖွေရန်မျှော်လင့်ပါသည်။
// ဒေတာဘေ့စ်မှနယ်ပယ်အမည်များစာရင်းကိုကျွန်ုပ်တို့မေးမြန်းသည်ဆိုပါစို့
$table1_columns = [
'id' => 'int(11)',
'name' => 'varchar(255)',
'email' => 'varchar(255)',
'created_at' => 'timestamp'
];
$table2_columns = [
'id' => 'int(11)',
'name' => 'varchar(255)',
'address' => 'varchar(255)', // ကွဲပြားခြားနားသောလယ်ကွင်း
'created_at' => 'timestamp'
];
// အသုံးပြု array_diff_ukey လယ်ကွင်းအမည်ကွဲပြားခြားနားမှုနှိုင်းယှဉ်
$diff = array_diff_ukey($table1_columns, $table2_columns, function ($key1, $key2) {
return strcmp($key1, $key2); // နှစ်ခုသော့အမည်များအတူတူပင်ရှိမရှိနှိုင်းယှဉ်
});
// output ကိုခြားနားချက်
if (!empty($diff)) {
echo "ကွဲပြားခြားနားသောလယ်ကွင်း: " . implode(', ', array_keys($diff));
} else {
echo "fields တသမတ်တည်း!";
}
ကျနော်တို့ကဒေတာဇယားနှစ်ခု၏လယ်ကွက်များ၏လယ်ကွက်များကို simulates နှစ်ခု array $ table1_columb နှင့် $ tablegolumns နှစ်ခုကိုသတ်မှတ်ပါတယ်။
ဤ arrays နှစ်ခုကိုနှိုင်းယှဉ်ရန် Array_diff_ukey ကို သုံးပါ။ လယ်ကွင်းအမည်များ (သော့ချက်များ) သည် callback function မှတဆင့်တသမတ်တည်းဖြစ်ကြောင်းနှိုင်းယှဉ်ပါ။
ခြားနားချက်တစ်ခုရှိပါက array_diff_ukey သည် ကွဲပြားခြားနားသောသော့အမည်များပါ 0 င်သောခင်းကျင်းမှုကိုပြန်ပေးလိမ့်မည်။ ကျွန်ုပ်တို့သည်ကွဲပြားသောလယ်ကွင်းအမည်များကို implode () မှတစ်ဆင့်ထုတ်ပေးသည်။
ကွဲပြားခြားနားသောလယ်ကွင်း: address
အထက်ပါနည်းလမ်းများမှတစ်ဆင့်ကျွန်ုပ်တို့သည်အချက်အလက်များစားပွဲနှစ်ခုအတွင်းဒေတာဇယားနှစ်ခုအတွင်းရှိကွက်လပ်ကွဲပြားမှုများကိုအလျင်အမြန်ရှာဖွေနိုင်သည်။
အမှန်တကယ်စီမံကိန်းများတွင်မတူညီသောဒေတာစားပွဲများသို့မဟုတ်မတူကွဲပြားသောစုံစမ်းမှုရလဒ်များအပေါ် အခြေခံ. နယ်ပယ်များကိုနှိုင်းယှဉ်ရန်လိုကောင်းလိုပေမည်။ ဥပမာအားဖြင့်ဒေတာထပ်တူပြုခြင်းသို့မဟုတ်ဒေတာရွှေ့ပြောင်းခြင်းအတွင်းဒေတာဘေ့စ်နှစ်ခုလုံး၏လယ်ကွင်းတည်ဆောက်မှုများသည်တသမတ်တည်းရှိကြောင်းသေချာစေရန်သို့မဟုတ်ဒေတာများကိုစနစ်တစ်ခုမှအခြားတစ်ခုသို့ပြောင်းရွှေ့သောအခါလယ်ကွင်းများသည်တသမတ်တည်းဖြစ်ကြောင်းသေချာစေရန်လိုအပ်သည်။ ဤအချိန်တွင် array_diff_ukey function သည်ဤလယ်ကွင်းများကိုထိရောက်စွာလုပ်ဆောင်ရန်ကူညီနိုင်သည်။
အထက်ဖော်ပြပါအချက်များသည်ဒေတာဘေ့စ်ကွင်းဆင်း synchronization အတည်ပြုခြင်းနှင့်နှိုင်းယှဉ်လျှင် array_diff_ukey function ကိုမည်သို့အသုံးပြုရမည်ကိုဥပမာတစ်ခုနှင့်ရှင်းလင်းချက်တစ်ခုဖြစ်သည်။ မင်းကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ် သင့်တွင်အသုံးပြုမှုပိုမိုများပြားသောအခြေအနေများသို့မဟုတ်ပြ problems နာများရှိပါကအတိမ်အနက်ကိုဆက်လေ့လာနိုင်သည်။