ဖွံ့ဖြိုးတိုးတက်မှုဆိုင်ရာလျှောက်လွှာများ၌အထူးသဖြင့်ဒေတာဘေ့စ်တွင်ပြုလုပ်ထားသောလုပ်ဆောင်မှုများတွင်မွမ်းမံမှုများပြုလုပ်သောလုပ်ဆောင်မှုများတွင်ကျွန်ုပ်တို့သည် "မကြာသေးမီကပြုပြင်ထားသောအကွက်" ရှာဖွေတွေ့ရှိမှုကိုမကြာခဏလုပ်ဆောင်ရန်လိုအပ်သည်။ ရိုးရိုးလေးပြောရလျှင် developer များကနှစ်ခု array နှစ်ခုနှင့်နှိုင်းယှဉ်ဖို့လိုတယ်။ PHP သည် ဤလိုအပ်ချက်ကိုရရှိရန်အတွက်အစွမ်းထက်သောလုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသည်။ တစ်ခုမှာ array_diff_UsocoT ဖြစ်သည်။
Array_Diff_UAASTOUCT function ကို array နှစ်ခု၏တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်အတွက် အသုံးပြု. မရပါ။ အောက်တွင်ကျွန်ုပ်တို့သည်လက်တွေ့ကျသောအက်ပ လီ ကေးရှင်းတစ်ခုမှတဆင့်လယ်ကွင်းပြောင်းလဲသွားမည်ရှိ,
Array_Diff_Uassoc ကို ဘယ်လိုသုံးရမလဲဆိုတာကိုရှင်းပြခြင်းမပြုမီ၎င်းသည်မည်သို့အလုပ်လုပ်သည်ကိုအတိုချုပ်နားလည်ကြပါစို့။ Array_diff_UASTOR ကို array_diff_assoc နှင့်ဆင်တူသည့်ကွဲပြားမှုနှစ်ခုအကြားခြားနားချက်ကိုတွက်ချက်ရန်အသုံးပြုသည်။
function ကိုအဓိပ္ပါယ်:
array_diff_uassoc ( array $array1 , array $array2 , callable $value_compare_func ) : array
$ array1 : ပထမ ဦး ဆုံးခင်းကျင်း။
$ array2 : ဒုတိယခင်းကျင်း။
$ value_Compare_function : Starray element တွေကိုနှိုင်းယှဉ်ဖို့အသုံးပြုတဲ့ callback function ကို။ အဆိုပါ function ကို parameters နှစ်ခုကိုလက်ခံရန်လိုအပ်ပါတယ်, ကိန်းဂဏန်းတန်ဖိုးကိုပြန်ပို့ခြင်းနှင့်တန်ဖိုးနှစ်ခုအကြားဆက်ဆံရေးကိုဆုံးဖြတ်ရန်နှင့်တန်ဖိုးနှစ်ခုအကြားဆက်ဆံရေးကိုဆုံးဖြတ်ရန် (0 နှင့်ညီမျှသည်မှာပထမတစ်ခုကအနုတ်လက်ခဏာတန်ဖိုးထက်ကြီးတယ်)
ကျွန်ုပ်တို့တွင်အသုံးပြုသူ၏အချက်အလက်များကို web interface မှတဆင့်နောက်ဆုံးသတင်းများကိုအသစ်ပြောင်းသည်ဆိုပါစို့။ ဤလုပ်ငန်းစဉ်တွင်မည်သည့်နယ်ပယ်များကိုပြုပြင်မွမ်းမံထားကြောင်းကျွန်ုပ်တို့သိရန်လိုအပ်သည်။
ပုံစံကိုတင်ပြခြင်းမပြုမီနှင့်ပြီးနောက်အသုံးပြုသူသတင်းအချက်အလက်ကိုကိုယ်စားပြုသည့် arry နှစ်ခုရှိသည်။
// ဒေတာကုန်ကြမ်း:တင်သွင်းမှုမတိုင်မီသတင်းအချက်အလက်
$oldData = [
'name' => 'John Doe',
'email' => 'johndoe@m66.net',
'age' => 25,
'address' => '123 Main Street'
];
// တင်သွင်းမှုပြီးနောက်ဒေတာ:အသုံးပြုသူပြုပြင်ထားသောအချက်အလက်
$newData = [
'name' => 'John Doe',
'email' => 'johndoe@m66.net',
'age' => 26, // ပြုပြင်ထားသော
'address' => '123 Main Street'
];
ကျွန်ုပ်တို့၏ရည်မှန်းချက်မှာ $ Newdata ရှိမည်သည့်နယ်ပယ်ရှိမည်သည့်နယ်ပယ်ကိုရှာဖွေတွေ့ရှိရန်ဖြစ်သည်။ ဒီအခြေအနေမှာ အီးမေးလ် လယ်ကွက်ကမပြောင်းပါဘူး, ဒါပေမယ့် အသက်အရွယ် လယ်ကွင်းပြောင်းလဲသွားတယ်။
// နှိုင်းယှဉ်ခေါ်ဆိုမှု function ကိုသတ်မှတ်ပါ
function customCompare($a, $b) {
return strcmp($a, $b);
}
// အသုံးပြုarray_diff_uassocကွဲပြားခြားနားမှု detect
$changedFields = array_diff_uassoc($newData, $oldData, 'customCompare');
// 输出ပြုပြင်ထားသော的字段
print_r($changedFields);
ဤဥပမာတွင် CustomCompare function သည် string နှစ်ခု (သို့မဟုတ်အခြားအချက်အလက်အမျိုးအစားများ) ကိုနှိုင်းယှဉ်ရန် strcmp ကို အသုံးပြုသည်။ အကယ်. ပြန်လာတန်ဖိုး 0 မဟုတ်လျှင်၎င်းသည်လယ်ကွင်းပြောင်းလဲသွားပြီဟုဆိုလိုသည်။
Array
(
[age] => 26
)
အပေါ်ကပြထားတဲ့အတိုင်းရလဒ်မှာ output ကို array တွေထဲမှာ အသက်အရွယ် သာရှိတယ်, အဲဒါဟာပြုပြင်မွမ်းမံထားတဲ့တစ်ခုတည်းသောလယ်ပဲ။
Array_Diff_UAASTOUCT function သည် Field ပြောင်းလဲမှုရှာဖွေတွေ့ရှိမှုတွင်အလွန်အသုံးဝင်သည်။ သော့ချက်တန်ဖိုးနှစ်ခုကိုနှစ်ခု array များနှင့်နှိုင်းယှဉ်ခြင်းအားဖြင့်၎င်းသည်မည်သည့်နယ်ပယ်ပြောင်းလဲသွားသည်ကိုတိကျစွာခွဲခြားနိုင်သည်။ စိတ်ကြိုက်နှိုင်းယှဉ် callback function များကိုပေါင်းစပ်ခြင်းအားဖြင့်သင်သည်အခြေအနေအမျိုးမျိုးတွင်ပြောင်းလွယ်ပြင်လွယ်နှင့်ထိရောက်သောကွဲပြားခြားနားသောခြားနားချက်ကိုရှာဖွေတွေ့ရှိနိုင်သည်။
array_diff_Usock ကို သုံး. "မကြာသေးမီကပြုပြင်ထားသောအကွက်များကို" အသုံးပြု. မည်သို့ရှာဖွေတွေ့ရှိရမည်ကိုပြသသည့်ကုဒ်အပြည့်အစုံဖြစ်သည်။
<?php
// ဒေတာကုန်ကြမ်း:တင်သွင်းမှုမတိုင်မီသတင်းအချက်အလက်
$oldData = [
'name' => 'John Doe',
'email' => 'johndoe@m66.net',
'age' => 25,
'address' => '123 Main Street'
];
// တင်သွင်းမှုပြီးနောက်ဒေတာ:အသုံးပြုသူပြုပြင်ထားသောအချက်အလက်
$newData = [
'name' => 'John Doe',
'email' => 'johndoe@m66.net',
'age' => 26, // ပြုပြင်ထားသော
'address' => '123 Main Street'
];
// နှိုင်းယှဉ်ခေါ်ဆိုမှု function ကိုသတ်မှတ်ပါ
function customCompare($a, $b) {
return strcmp($a, $b);
}
// အသုံးပြုarray_diff_uassocကွဲပြားခြားနားမှု detect
$changedFields = array_diff_uassoc($newData, $oldData, 'customCompare');
// 输出ပြုပြင်ထားသော的字段
print_r($changedFields);
?>