လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Database Update Fields ကို filter လုပ်ရန် array_diff_assoc () ကိုသုံးပါ

Database Update Fields ကို filter လုပ်ရန် array_diff_assoc () ကိုသုံးပါ

M66 2025-06-06

ဒေတာများကိုတစ်ပြိုင်တည်းချိန်ကိုက်သောအခါအထူးသဖြင့်ဒေတာဘေ့စ် update စစ်ဆင်ရေးများတွင်အချက်အလက်နှစ်ခုအကြားကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်လိုအပ်သည်။ ပုံမှန်အားဖြင့် developer များကကွင်းဆင်းတန်ဖိုးများကိုတစ်ခုနှင့်နှိုင်းယှဉ်ခြင်းအားဖြင့်၎င်းကိုအောင်မြင်နိုင်သည်။ သို့သော်ဤချဉ်းကပ်နည်းသည်ထိရောက်မှုနည်းပြီးအလုံအလောက်မပြည့်စုံပါ။ ယနေ့တွင် PHP ၏ Array_diff_Diff_Aff_IDF_) function ကိုမည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့ရှင်းပြပါမည်။

1 ။ Array_diff_assoc ဆိုတာဘာလဲ။

array_diff_assoc () သည် PHP တွင် Array function တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည် incray နှစ်ခုနှင့်တန်ဖိုးများကိုပထမခင်းကျင်းတွင်တည်ရှိခဲ့သော်လည်းဒုတိယခင်းကျင်းမှုတွင်မပါ 0 င်ပါ။ array_diff () , array_diff_assoc () တန်ဖိုးများကိုခင်းကျင်းခြင်းနှင့်နှိုင်းယှဉ်ရုံသာမကသူတို့၏သော့များ (အညွှန်းကိန်း) နှင့်နှိုင်းယှဉ်သည်။ ဤအင်္ဂါရပ်သည်ဒေတာထပ်တူပြုခြင်းနှင့်အသစ်ပြောင်းခြင်းများကိုကိုင်တွယ်သောအခါ၎င်းသည်အလွန်အသုံးဝင်သည်။

2 ။ array_diff_assoc () ကိုသုံးပါ။ Database Update Fields filter

ကျွန်ုပ်တို့တွင်ဒေတာဘေ့စ် မှတ်တမ်း (2) ခုရှိသည်ဆိုပါစို့ သက်ဆိုင်ရာဒေတာဘေ့စ် update ကိုလုပ်ဆောင်ရန်မည်သည့်နယ်ပယ်များသည်သူတို့၏တန်ဖိုးများကိုပြောင်းလဲရန်လိုအပ်သည်ကိုကျွန်ုပ်တို့ရှာဖွေရန်လိုအပ်သည်။

ဤကိစ္စတွင် Array_diff_assoC () သည် ကွဲပြားခြားနားမှုများကိုလျင်မြန်စွာခွဲခြားသိမြင်စေပြီးအသစ်ပြောင်းရန်လိုအပ်သောအကွက်များကို filter လုပ်ပေးနိုင်သည်။

3 ။ နမူနာကုဒ်

ဒေတာမှတ်တမ်းအသစ်များကိုကိုယ်စားပြုသောဒေတာဘေ့စ်မှအောက်ပါအချက်များမှအောက်ပါအချက်များကိုရရှိသည်ဆိုပါစို့။

 $oldData = [
    'name' => 'John Doe',
    'email' => 'john@example.com',
    'phone' => '1234567890',
    'address' => '123 Main St'
];

$newData = [
    'name' => 'John Doe',
    'email' => 'john@m66.net',
    'phone' => '0987654321',
    'address' => '123 Main St'
];

ဤဥပမာတွင်မည်သည့်နယ်ပယ်သည်တန်ဖိုးကိုပြောင်းလဲသွားပြီကိုရှာဖွေရန်လိုအပ်သည်။

 $fieldsToUpdate = array_diff_assoc($newData, $oldData);

print_r($fieldsToUpdate);

4 ။ output ရလဒ်

 Array
(
    [email] => john@m66.net
    [phone] => 0987654321
)

အပေါ်ကပြထားတဲ့အတိုင်း array_diff_assoc () () နှစ်ခု arrays နှစ်ခုအတွက်ကွဲပြားခြားနားသော key-value အတွဲများကိုပြန်ပို့သည်။ အီးမေးလ် နှင့် ဖုန်း ။ ထို့ကြောင့်ဤနယ်ပယ်များ၏စံနှုန်းများပြောင်းလဲသွားပြီးအသစ်ပြောင်းရန်လိုအပ်သည်။

5 ။ ဒေတာဘေ့စ်အသစ်ပြောင်းခြင်းများတွင်မည်သို့လျှောက်ထားရမည်နည်း။

ထို့နောက်ကျွန်ုပ်တို့သည်ဤ differential data ကို database update statement တစ်ခုတည်ဆောက်ရန်အသုံးပြုနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် MySQL ဒေတာဘေ့စ်တစ်ခုကိုအသုံးပြုပါကအောက်ပါ SQL ကြေငြာချက်ကို အသုံးပြု. ဤနယ်ပယ်များကိုမွမ်းမံနိုင်သည်။

 $updates = [];
foreach ($fieldsToUpdate as $field => $value) {
    $updates[] = "$field = '$value'";
}

$updateQuery = "UPDATE users SET " . implode(", ", $updates) . " WHERE id = 1";

// update စုံစမ်းမှုလုပ်ဆောင်ပါ
echo $updateQuery;

output sql ကြေညာချက်သည်ဤကဲ့သို့ဖြစ်နိုင်သည် -

 UPDATE users SET email = 'john@m66.net', phone = '0987654321' WHERE id = 1;

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ပြောင်းလဲသွားသောထိုနယ်ပယ်များကိုကျွန်ုပ်တို့သာမွမ်းမံပြီးမလိုအပ်သောဒေတာဘေ့စ်လုပ်ငန်းများနှင့်ထိရောက်မှုကိုရှောင်ရှားရန်

6 ။ ဒေတာထပ်တူပြုခြင်းလုပ်ငန်းစဉ်ကိုအကောင်းမြင်ပါ

ဒေတာထပ်တူပြုခြင်းလုပ်ငန်းစဉ်တွင်အထူးသဖြင့်ဒေတာနောက်ဆုံးသတင်းများအမြောက်အများပါ 0 င်သည့်အခါ array_diff_assoc () function ကိုအသုံးပြုခြင်းသည်မလိုအပ်သောလုပ်ဆောင်မှုများကိုထိထိရောက်ရောက်အသုံးပြုသည်။ ကျွန်ုပ်တို့သည်ဤနည်းလမ်းကိုမသုံးပါကကျွန်ုပ်တို့သည်နယ်ပယ်တစ်ခုစီကို ဖြတ်. ဖြတ်သန်းရန်နှင့်အမှားအယွင်းရှိသည့်အမှားအယွင်းတစ်ခုနှင့်နှိုင်းယှဉ်ရန်လိုကောင်းနှိုင်းယှဉ်နိုင်သည်။ နှင့် array_diff_assoc () , ဒေတာကွဲပြားခြားနားမှုကိုလျင်မြန်စွာရှာဖွေနိုင်, မွမ်းမံမှုများကိုဒေတာဘေ့စ်သို့အလျင်အမြန်လျှော့ချပြီးထပ်တူ update လုပ်ခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။

အကျဉ်းချုပ်

PHP ၏ Array_Diff_Aff_Aff_Aff_ALFOUC () function ကိုအသုံးပြုခြင်းဖြင့်ဒေတာဘေ့စ် update fields ၏စစ်ထုတ်ခြင်းလုပ်ငန်းစဉ်ကိုရိုးရှင်းအောင်ပြုလုပ်နိုင်ပြီးလက်သမားများနှင့်တစ်ပြိုင်နက်တည်းနှိုင်းယှဉ်ခြင်းကိုရှောင်ရှားနိုင်သည်။ အထူးသဖြင့်ဒေတာထပ်တူပြုခြင်း, ဤနည်းလမ်းသည်ထိရောက်မှုကိုများစွာတိုးတက်စေနိုင်သည်။ ဤဆောင်းပါး၏ရှင်းလင်းချက်အားဖြင့်လူတိုင်းသည်ဤလုပ်ဆောင်မှုကိုပိုမိုနားလည်ပြီးအသုံးပြုရန်နှင့်အချက်အလက်ပြုပြင်ခြင်း၏ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။