လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> pre-and-roguration Rollback ဆုံးဖြတ်ချက်ချရန် Array_Diff_AssoC () ကိုသုံးပါ

pre-and-roguration Rollback ဆုံးဖြတ်ချက်ချရန် Array_Diff_AssoC () ကိုသုံးပါ

M66 2025-05-17

PHP တွင်ကျွန်ုပ်တို့သည် configuration file ကို version control or rollack ကိုမကြာခဏလိုအပ်သည်။ configuration file ပြောင်းလဲသွားသောအခါကျွန်ုပ်တို့သည် configuration files အသစ်များနှင့်အသစ်အဆန်းဖိုင်အသစ်များနှင့်ကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ကြည့်ရှုနိုင်ပြီး၎င်းအပေါ် မူတည်. ပြန်လည်ထုတ်ယူခြင်းရှိမရှိကိုကျွန်ုပ်တို့နှိုင်းယှဉ်နိုင်သည်။ array_diff_assoc () သည်ဤလုပ်ဆောင်မှုကိုအကောင်အထည်ဖော်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည့်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။

1 ။ array_diff_assoc () function ကိုခြုံငုံသုံးသပ်ချက်

array_diff_assoc () သည် PHP တွင်အသုံးပြုသော function တစ်ခုဖြစ်ပြီးနှစ်ခုကိုနှိုင်းယှဉ်ရန်။ ၎င်းသည်ခင်းကျင်းမှု၏တန်ဖိုးများကိုနှိုင်းယှဉ်ရုံသာမကခင်းကျင်းခြင်း၏သော့များကိုလည်းနှိုင်းယှဉ်သည်။ ဤလုပ်ဆောင်ချက်သည်ပထမခင်းကျင်းရေးခလုတ်နှင့်မကိုက်ညီသောပထမဆုံးခင်းကျင်းမှုတွင် element အသစ်များပါ 0 င်သော array အသစ်တစ်ခုကိုရရှိစေသည်။

Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff_assoc(array $array1, array $array2) : array
  • $ array1 : ပထမ ဦး ဆုံးခင်းကျင်း။

  • $ array2 : ဒုတိယခင်းကျင်း။

Return Value သည် ဒေါ်လာ array1 နှင့် $ array2 key value အတွဲများပါ 0 င်သည့် array တစ်ခုဖြစ်သည်။

2 ။ array_diff_assoc () ကို ဘယ်လိုသုံးရမလဲဆိုတာကိုဘယ်လိုသုံးမလဲ။

ကျွန်ုပ်တို့တွင် configuration files နှစ်ခုရှိသည်ဆိုပါစို့။ တစ်ခုမှာလက်ရှိ configuration file (configuration file) နှင့်အခြားသည်ယခင် configuration file (Old configuration) ဖြစ်သည်။ ဒီ configuration files တွေအကြားကွဲပြားခြားနားမှုတွေကိုနှိုင်းယှဉ်ခြင်းအားဖြင့် configuration ဟောင်းကိုပြန်လှိမ့်ဖို့လိုမလားဆိုတာကျွန်တော်တို့ကိုပြောနိုင်တယ်။

ဤတွင်ရိုးရှင်းသောအကောင်အထည်ဖော်မှုလုပ်ငန်းစဉ်ကိုဤတွင်ဖော်ပြထားသည်။

 <?php

// အသစ်ပြင်ဆင်မှု(ဒါဟာလက်ရှိ configuration ကိုယူဆ)
$current_config = [
    'site_name' => 'MySite',
    'theme' => 'dark',
    'timezone' => 'UTC+8',
    'debug' => true
];

// configuration အဟောင်း(backup configuration ကိုယူဆ)
$backup_config = [
    'site_name' => 'MySite',
    'theme' => 'light',  // configuration အဟောင်း的主题
    'timezone' => 'UTC+8',
    'debug' => false  // configuration အဟောင်း的debugပုံစံ
];

// 比较အသစ်ပြင်ဆင်မှု与configuration အဟောင်း的差异
$diff = array_diff_assoc($current_config, $backup_config);

// အဆိုပါပြန်လာခြားနားချက်ဗလာမဟုတ်ပါဘူးလျှင်,configuration file ကိုပြောင်းလဲသွားကြောင်းဖော်ပြသည်
if (!empty($diff)) {
    echo "configuration file ပြောင်းလဲမှုများ,ခြားနားချက်ကိုအောက်ပါအတိုင်းဖြစ်ပါတယ်:\n";
    print_r($diff);
    // ဤတွင်ကျွန်ုပ်တို့သည်ထပ်မံဖြည့်စွက်ရန်လိုအပ်သည်ရှိမရှိထပ်မံဆုံးဖြတ်နိုင်သည်
    echo "需要回滚到configuration အဟောင်း。\n";
} else {
    echo "အဆိုပါ configuration file ကိုမပြောင်းလဲပါဘူး。\n";
}

?>

3 ။ code ခွဲခြမ်းစိတ်ဖြာ

  1. သတ်မှတ်ချက် configuration file : arry နှစ်ခုကိုသတ်မှတ်ပြီးတစ်ခုမှာလက်ရှိ configuration $ curnontfig နှင့်အခြားတစ်ခုမှာ backup configuration $ backup_config ဖြစ်သည်။

  2. Call Array_diff_assoc () - ဤ configuration files များအကြားကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန် array_diff_assoc () ကို အသုံးပြုသည်။

  3. ခြားနားချက်ကိုဆုံးဖြတ်ပါ - ပြန်လည်ရောက်ရှိသည့်ကွဲပြားမှု array $ diff သည် ဗလာမဟုတ်လျှင်လက်ရှိ configuration file နှင့် backup configuration file အကြားခြားနားချက်ရှိသည်ဟုဆိုလိုသည်။

4 ။ ဥပမာ output ကိုရလဒ်

အထက်ပါကုဒ်ကိုဖွင့်ပြီးနောက်, output ကိုခြားနားချက်ကိုအောက်ပါအတိုင်းဖော်ပြလိမ့်မည် -

 configuration file ပြောင်းလဲမှုများ,ခြားနားချက်ကိုအောက်ပါအတိုင်းဖြစ်ပါတယ်:
Array
(
    [theme] => dark
    [debug] => 1
)
需要回滚到configuration အဟောင်း。

ဆိုလိုသည်မှာ အဓိကအကြောင်းအရာ နှင့် debug ၏တန်ဖိုးများသည် configuration files ဟောင်းနှင့်အသစ်များနှင့်ကွဲပြားခြားနားသောကြောင့် Roundback လိုအပ်သည်။

5 ။ Rollback စစ်ဆင်ရေး

လက်တွေ့ကျသော application များအနေဖြင့် configuration files များတွင်ကွဲပြားခြားနားမှုများကိုရှာဖွေတွေ့ရှိသောအခါကျွန်ုပ်တို့သည် configuration files ဟောင်းများကိုပြန်လည်ထူထောင်ခြင်းဖြင့်ပြန်လှည့်နိုင်သည်။ ဥပမာအားဖြင့်, သင်သည် configuration file သို့ $ backup_config ထဲမှ content များကိုပြန်လည်ရေးနိုင်သည်သို့မဟုတ်ဒေတာဘေ့စ်၌ဗားရှင်းအဟောင်းသို့ပြန်ယူနိုင်သည်။

 file_put_contents('config.php', '<?php return ' . var_export($backup_config, true) . ';');
echo "အဆိုပါ configuration file ကိုပြန်လှိမ့်ခဲ့သည်。\n";

6 ။ အကျဉ်းချုပ်

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

ဆက်စပ်ဖတ်