PHP Development တွင် HTTP တောင်းဆိုမှုများကိုပြုပြင်သည့်အခါ client မှတင်ပြသောအချက်အလက်များကိုလက်ရှိဆာဗာဘက်မှအချက်အလက်များနှင့်နှိုင်းယှဉ်ရန်လိုအပ်သည် ။ ယနေ့ကျွန်ုပ်တို့သည် ပြင်ဆင်မှုကို ရှာဖွေတွေ့ရှိသောနယ်ပယ်များကိုရှာဖွေရန် Controller တွင် array_diff_assoc () function ကို Controller တွင်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။
Array_Diff_AssoC () function ကိုနှစ်ခု array နှစ်ခုကိုနှိုင်းယှဉ်ရန်နှင့်ကွဲပြားခြားနားမှုများကိုအဓိကအမည်များနှင့်အဓိကတန်ဖိုးများကိုပြန်ပို့ရန်အသုံးပြုသည်။ မည်သည့်ကွက်လပ်များပြောင်းလဲသွားပြီကိုရှာဖွေရန်အလွန်အဆင်ပြေသည်။ Patch Requests တောင်းဆိုမှုများပြုလုပ်သောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်မူရင်းအချက်အလက်များကိုအသုံးပြုသူမှတင်ပြရန်လိုအပ်သည့်နယ်ပယ်များကိုရှာဖွေရန်တင်သွင်းသောအချက်အလက်များ၏မူလအချက်အလက်များကိုနှိုင်းယှဉ်ရန်လိုအပ်သည်။
ကျွန်ုပ်တို့တွင်အသုံးပြုသူပရိုဖိုင်း၏ဒေတာဘေ့ စ ်စာရင်းတွင်ရှိပြီးဆိုပါစို့။ 0 န်ဆောင်မှုခံယူသူသည်အသစ်ပြုပြင်ရန်လိုအပ်သည့်လယ်ကွင်းများကိုသာတင်သွင်းလိမ့်မည်။ မူရင်းအချက်အလက်များကိုအသစ်တင်ထားသောအချက်အလက်များနှင့်နှိုင်းယှဉ်နိုင်ရန်အတွက် Array_diff_AssoC () function ကိုသုံးနိုင်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်မူလအချက်အလက်များကိုဒေတာဘေ့ စ ်တွင်ထည့်သွင်းရန်လိုအပ်သည်။ ကျွန်ုပ်တို့သည်မူရင်းအသုံးပြုသူအချက်အလက်များကိုတစ်နည်းနည်းဖြင့်နှင့် client မှတင်ပြသောအချက်အလက်များကိုတစ်နည်းနည်းဖြင့်သိမ်းပိုက်ထားကြောင်းကျွန်ုပ်တို့ယူဆသည်။
// ဒီဟာကိုဒေတာဘေ့စ်ထဲမှာမူရင်းအသုံးပြုသူအချက်အလက်လို့ယူဆတယ်
$originalData = [
'id' => 1,
'name' => 'John Doe',
'email' => 'johndoe@example.com',
'phone' => '123456789'
];
// ဒီမှတဆင့်ဖြစ်ပါတယ်ယူဆ PATCH တောင်းဆိုထားသောတင်သွင်းမှုဒေတာ
$patchData = [
'name' => 'John Smith',
'phone' => '987654321'
];
ယခုကျွန်ုပ်တို့သည်မည်သည့်နယ်ပယ်ပြောင်းလဲသွားကြောင်းရှာဖွေတွေ့ရှိရန် array_diff_assoc () ကို သုံးနိုင်သည်။ Array_diff_assoC () သည် array နှစ်ခု၏သော့များနှင့်တန်ဖိုးများကိုနှိုင်းယှဉ်ပြီးထိုကွဲပြားခြားနားသောအစိတ်အပိုင်းများကိုပြန်လည်ရယူသည်။
// အသုံးပြု array_diff_assoc() ပြောင်းလဲမှုလယ်ကွင်း detect ရန်
$changedFields = array_diff_assoc($patchData, $originalData);
// output ကိုပြောင်းလဲသွားတယ်
print_r($changedFields);
Array_diff_assoC () မှရရှိသောရလဒ်သည်ပြောင်းလဲထားသောနယ်ပယ်အားလုံးပါ 0 င်သည့်နေရာတစ်ခုဖြစ်သည်။ ဤပြောင်းလဲမှုများအပေါ် အခြေခံ. မွမ်းမံမှုများပြုလုပ်နိုင်သည်။
if (!empty($changedFields)) {
// အပြောင်းအလဲများကိုပြောင်းလဲခြင်းနယ်ပယ်များ,ဥပမာအားဖြင့်, ဒေတာဘေ့စ်ကို update လုပ်ပါ
foreach ($changedFields as $key => $value) {
// ဒီမှာဒေတာဘေ့စ update ကိုလုပ်ဆောင်ပါ
echo "Field $key has been changed to $value\n";
}
} else {
echo "No changes detected.\n";
}
အကယ်. သင်ကတောင်းဆိုမှုအတွင်းရှိ URL ကိုသင်လုပ်ဆောင်ရန်လိုအပ်ပါက URL ၏ဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးရန်သတိရပါ။ ဥပမာအားဖြင့်, သင်သည် URL သို့တောင်းဆိုမှုတစ်ခုပို့ရန်လိုအပ်ပါကအောက်ပါကုဒ်ကိုသုံးနိုင်သည်။