PHP တွင် array_diff_UAAssoc () function ကိုအသုံးပြုသည်။ နှစ်ခုထက်ပိုသော array များနှင့်နှိုင်းယှဉ်ရန်နှင့်ပထမခင်းကျင်းတွင်ထည့်သွင်းထားသော array တွင်ပါ 0 င်သည်။ တစ်ချိန်တည်းမှာပင် array_diff_UAAssoc () သည် ခင်းကျင်း၏အဓိကအကြောင်းရင်းများကိုနှိုင်းယှဉ်ရန်စိတ်ကြိုက်နှိုင်းယှဉ်မှု function ကိုအသုံးပြုရန်ခွင့်ပြုသည်။
သို့သော်ကျွန်ုပ်တို့သည်အမည်မသိလုပ်ဆောင်ချက်များကို array_diff_Usassoc () PHP ဗားရှင်းများဖြင့်ခေါ်ဆိုမှု function ကိုအသုံးပြုသောအခါအမှားတစ်ခုကြုံတွေ့ရနိုင်သည်။ ဤပြ problem နာကိုနားလည်ရန်ကျွန်ုပ်တို့သည်သော့ချက်နောက်ခံဗဟုသုတအချို့ကို ဦး စွာနားလည်ရန်လိုအပ်သည်။
array_diff_Usassoc () ၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func) : array
အတွက်
$ array1 သည်ပထမ ဦး ဆုံးခင်းကျင်းခြင်းနှင့် $ array2 နှိုင်းယှဉ်ခံရဖို့အခြား array2 ဖြစ်ပါတယ်။
$ key_compare_func သည်သော့များကို array များနှင့်နှိုင်းယှဉ်သောစိတ်ကြိုက်နှိုင်းယှဉ်မှု function ဖြစ်သည်။
PHP ၏အောက်ပိုင်းဗားရှင်းတွင်အမည်မသိလုပ်ဆောင်ချက်များ (i.E. ပိတ်ခြင်း) သည် built-in functions များနှင့်အထူးသဖြင့် array_diff_Usococ () ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုပြန်လည်ခေါ်ဆိုမှုအဖြစ်အပြည့်အဝမထောက်ခံပါ။ Array_diff_Usassoc ၏စာရွက်စာတမ်းများကိုကြည့်ရှုနိုင်ပါသည်။ တတိယ parampare_compare_funcing သည် Callable function တစ်ခုဖြစ်သင့်ကြောင်းကျွန်ုပ်တို့ကြည့်ရှုနိုင်သည်။ PHP 5.3 ကတည်းက PHP သည်အမည်မသိလုပ်ဆောင်ချက်များကိုထောက်ပံ့သော်လည်း PHP ၏နိမ့်ကျသောဗားရှင်းအချို့တွင်အမည်မသိလုပ်ဆောင်ချက်များကို callback function များအဖြစ်ကောင်းစွာမထောက်ပံ့ပါ။
အစောပိုင်း PHP ဗားရှင်း (PHP 5.3 သို့မဟုတ်အစောပိုင်း) တွင်အောက်ပါကုဒ်သည်အမှားတစ်ခုသတင်းပို့လိမ့်မည်။
<?php
$array1 = [1 => 'apple', 2 => 'banana', 3 => 'cherry'];
$array2 = [1 => 'apple', 2 => 'orange', 4 => 'grape'];
$result = array_diff_uassoc($array1, $array2, function($a, $b) {
return $a - $b;
});
?>
ဤကုဒ်၏ရည်ရွယ်ချက်မှာ array ၏အဓိကတန်ဖိုးများကိုအမည်မသိလုပ်ဆောင်ချက်များမှတစ်ဆင့်နှိုင်းယှဉ်ရန်ဖြစ်သည်။ သို့သော် PHP 5.3 ၏အောက်ဖော်ပြပါဗားရှင်းများတွင် PHP သည်အမည်မသိသောလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာနိုင်ပြီး callback function များကိုမခွဲနိုင်သည့်အတွက်ထိုကဲ့သို့သောကုဒ်များသည်အမှားတစ်ခုဖြစ်လိမ့်မည်။
ဤပြ problem နာကိုဖြေရှင်းရန်အမည်မသိ function ကို function တစ်ခုနှင့်အစားထိုးနိုင်သည်။ PHP ၏ဗားရှင်းအားလုံးတွင်အမည်ရှိလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်။
<?php
function compare_keys($a, $b) {
return $a - $b;
}
$array1 = [1 => 'apple', 2 => 'banana', 3 => 'cherry'];
$array2 = [1 => 'apple', 2 => 'orange', 4 => 'grape'];
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
?>
ဤနည်းလမ်းသည် PHP ၏ဗားရှင်းအားလုံးတွင်စနစ်တကျအလုပ်လုပ်သည်, အမည်မဖော်လိုသောလုပ်ဆောင်မှုများကြောင့်ဖြစ်ပေါ်လာသောဖြစ်နိုင်ချေရှိသောပြ problems နာများကိုရှောင်ရှားနိုင်သည်။
ဖြစ်နိုင်လျှင် PHP ကို 5.3 နှင့်အထက်သို့အဆင့်မြှင့်ရန်အကြံပြုသည်။ PHP 5.3 နှင့်အထက်တွင်အမည်မသိလုပ်ဆောင်ချက်များ (ပိတ်ပစ်) ကိုပြန်လည်ခေါ်ဆိုမှုဆိုင်ရာလုပ်ဆောင်ချက်များအဖြစ်ပိုမိုကောင်းမွန်သည်။ ထို့ကြောင့်သင်၏စီမံကိန်းသည် PHP ဗားရှင်းဟောင်းကိုအသုံးပြုပါကအလားတူလိုက်ဖက်တဲ့ပြ issues နာများကိုရှောင်ရှားရန် PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်အကြံပြုသည်။
PHP တွင် array_diff_UAAssoC () ကိုအသုံးပြုသည့်အခါ callback function သည်အမည်မသိ function တစ်ခုဖြစ်ပါက PHP ၏အောက်မူအနိမ့်အမြင့်သည်အမှားတစ်ခုဖြစ်လိမ့်မည်။ ပြ problem နာ၏အမြစ်သည်အထူးသဖြင့် PHP 5.3 မတိုင်မီကဗားရှင်းများတွင်အကန့်အသတ်ရှိသည်။ ဖြေရှင်းနည်းမှာအမည်မဖော်လိုသောလုပ်ဆောင်ချက်များကိုအစားအမည်ပေးထားသောလုပ်ဆောင်မှုများကိုအသုံးပြုရန်သို့မဟုတ်အမည်မဖော်လိုသောလုပ်ဆောင်ချက်များကိုထောက်ပံ့ရန် Php ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်ဖြစ်သည်။