လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Patch Request အတွက်ပြုပြင်ပြောင်းလဲမှုများကိုရှာဖွေရန် Controller တွင် Array_diff_AssoC () ကိုသုံးပါ

Patch Request အတွက်ပြုပြင်ပြောင်းလဲမှုများကိုရှာဖွေရန် Controller တွင် Array_diff_AssoC () ကိုသုံးပါ

M66 2025-06-06

PHP Development တွင် HTTP တောင်းဆိုမှုများကိုပြုပြင်သည့်အခါ client မှတင်ပြသောအချက်အလက်များကိုလက်ရှိဆာဗာဘက်မှအချက်အလက်များနှင့်နှိုင်းယှဉ်ရန်လိုအပ်သည် ယနေ့ကျွန်ုပ်တို့သည် ပြင်ဆင်မှုကို ရှာဖွေတွေ့ရှိသောနယ်ပယ်များကိုရှာဖွေရန် Controller တွင် array_diff_assoc () function ကို Controller တွင်မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။

Array_Diff_AssoC () function ကိုနှစ်ခု array နှစ်ခုကိုနှိုင်းယှဉ်ရန်နှင့်ကွဲပြားခြားနားမှုများကိုအဓိကအမည်များနှင့်အဓိကတန်ဖိုးများကိုပြန်ပို့ရန်အသုံးပြုသည်။ မည်သည့်ကွက်လပ်များပြောင်းလဲသွားပြီကိုရှာဖွေရန်အလွန်အဆင်ပြေသည်။ Patch Requests တောင်းဆိုမှုများပြုလုပ်သောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်မူရင်းအချက်အလက်များကိုအသုံးပြုသူမှတင်ပြရန်လိုအပ်သည့်နယ်ပယ်များကိုရှာဖွေရန်တင်သွင်းသောအချက်အလက်များ၏မူလအချက်အလက်များကိုနှိုင်းယှဉ်ရန်လိုအပ်သည်။

ကြည့်ရှုပါ

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

လှမ်း

1 ။ မူရင်းဒေတာနှင့် patch ကို တောင်းဆိုသည့်အချက်အလက်များကိုရယူပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်မူလအချက်အလက်များကိုဒေတာဘေ့ ်တွင်ထည့်သွင်းရန်လိုအပ်သည်။ ကျွန်ုပ်တို့သည်မူရင်းအသုံးပြုသူအချက်အလက်များကိုတစ်နည်းနည်းဖြင့်နှင့် client မှတင်ပြသောအချက်အလက်များကိုတစ်နည်းနည်းဖြင့်သိမ်းပိုက်ထားကြောင်းကျွန်ုပ်တို့ယူဆသည်။

 // ဒီဟာကိုဒေတာဘေ့စ်ထဲမှာမူရင်းအသုံးပြုသူအချက်အလက်လို့ယူဆတယ်
$originalData = [
    'id' => 1,
    'name' => 'John Doe',
    'email' => 'johndoe@example.com',
    'phone' => '123456789'
];

// ဒီမှတဆင့်ဖြစ်ပါတယ်ယူဆ PATCH တောင်းဆိုထားသောတင်သွင်းမှုဒေတာ
$patchData = [
    'name' => 'John Smith',
    'phone' => '987654321'
];

2 ။ array_diff_assoc () ကိုဒေတာနှိုင်းယှဉ်ဖို့သုံးပါ

ယခုကျွန်ုပ်တို့သည်မည်သည့်နယ်ပယ်ပြောင်းလဲသွားကြောင်းရှာဖွေတွေ့ရှိရန် array_diff_assoc () ကို သုံးနိုင်သည်။ Array_diff_assoC () သည် array နှစ်ခု၏သော့များနှင့်တန်ဖိုးများကိုနှိုင်းယှဉ်ပြီးထိုကွဲပြားခြားနားသောအစိတ်အပိုင်းများကိုပြန်လည်ရယူသည်။

 // အသုံးပြု array_diff_assoc() ပြောင်းလဲမှုလယ်ကွင်း detect ရန်
$changedFields = array_diff_assoc($patchData, $originalData);

// output ကိုပြောင်းလဲသွားတယ်
print_r($changedFields);

3 ။ ပြောင်းလဲသွားသောလယ်ကွင်းများကိုကိုင်တွယ်ပါ

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";
}

4 ။ URL အစားထိုး

အကယ်. သင်ကတောင်းဆိုမှုအတွင်းရှိ URL ကိုသင်လုပ်ဆောင်ရန်လိုအပ်ပါက URL ၏ဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးရန်သတိရပါ။ ဥပမာအားဖြင့်, သင်သည် URL သို့တောင်းဆိုမှုတစ်ခုပို့ရန်လိုအပ်ပါကအောက်ပါကုဒ်ကိုသုံးနိုင်သည်။