လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_diff_UAAssoC () in callback function ကို anonymous function version ကိုမပံ့ပိုးပါ

array_diff_UAAssoC () in callback function ကို anonymous function version ကိုမပံ့ပိုးပါ

M66 2025-06-06

PHP တွင် array_diff_UAAssoc () function ကိုအသုံးပြုသည်။ နှစ်ခုထက်ပိုသော array များနှင့်နှိုင်းယှဉ်ရန်နှင့်ပထမခင်းကျင်းတွင်ထည့်သွင်းထားသော array တွင်ပါ 0 င်သည်။ တစ်ချိန်တည်းမှာပင် array_diff_UAAssoc () သည် ခင်းကျင်း၏အဓိကအကြောင်းရင်းများကိုနှိုင်းယှဉ်ရန်စိတ်ကြိုက်နှိုင်းယှဉ်မှု function ကိုအသုံးပြုရန်ခွင့်ပြုသည်။

သို့သော်ကျွန်ုပ်တို့သည်အမည်မသိလုပ်ဆောင်ချက်များကို array_diff_Usassoc () PHP ဗားရှင်းများဖြင့်ခေါ်ဆိုမှု function ကိုအသုံးပြုသောအခါအမှားတစ်ခုကြုံတွေ့ရနိုင်သည်။ ဤပြ problem နာကိုနားလည်ရန်ကျွန်ုပ်တို့သည်သော့ချက်နောက်ခံဗဟုသုတအချို့ကို ဦး စွာနားလည်ရန်လိုအပ်သည်။

array_diff_Usassoc ၏အသုံးပြုမှု ()

array_diff_Usassoc () ၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func) : array

အတွက်

  • $ array1 သည်ပထမ ဦး ဆုံးခင်းကျင်းခြင်းနှင့် $ array2 နှိုင်းယှဉ်ခံရဖို့အခြား array2 ဖြစ်ပါတယ်။

  • $ key_compare_func သည်သော့များကို array များနှင့်နှိုင်းယှဉ်သောစိတ်ကြိုက်နှိုင်းယှဉ်မှု function ဖြစ်သည်။

ပြ the နာ၏အမြစ်

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 များကိုမခွဲနိုင်သည့်အတွက်ထိုကဲ့သို့သောကုဒ်များသည်အမှားတစ်ခုဖြစ်လိမ့်မည်။

အဖေြ

1 ။ အမည်ရှိလုပ်ဆောင်ချက်များကိုသုံးပါ

ဤပြ 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 နာများကိုရှောင်ရှားနိုင်သည်။

2 ။ PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ပါ

ဖြစ်နိုင်လျှင် PHP ကို ​​5.3 နှင့်အထက်သို့အဆင့်မြှင့်ရန်အကြံပြုသည်။ PHP 5.3 နှင့်အထက်တွင်အမည်မသိလုပ်ဆောင်ချက်များ (ပိတ်ပစ်) ကိုပြန်လည်ခေါ်ဆိုမှုဆိုင်ရာလုပ်ဆောင်ချက်များအဖြစ်ပိုမိုကောင်းမွန်သည်။ ထို့ကြောင့်သင်၏စီမံကိန်းသည် PHP ဗားရှင်းဟောင်းကိုအသုံးပြုပါကအလားတူလိုက်ဖက်တဲ့ပြ issues နာများကိုရှောင်ရှားရန် PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်အကြံပြုသည်။

အကျဉ်းချုပ်

PHP တွင် array_diff_UAAssoC () ကိုအသုံးပြုသည့်အခါ callback function သည်အမည်မသိ function တစ်ခုဖြစ်ပါက PHP ၏အောက်မူအနိမ့်အမြင့်သည်အမှားတစ်ခုဖြစ်လိမ့်မည်။ ပြ problem နာ၏အမြစ်သည်အထူးသဖြင့် PHP 5.3 မတိုင်မီကဗားရှင်းများတွင်အကန့်အသတ်ရှိသည်။ ဖြေရှင်းနည်းမှာအမည်မဖော်လိုသောလုပ်ဆောင်ချက်များကိုအစားအမည်ပေးထားသောလုပ်ဆောင်မှုများကိုအသုံးပြုရန်သို့မဟုတ်အမည်မဖော်လိုသောလုပ်ဆောင်ချက်များကိုထောက်ပံ့ရန် Php ဗားရှင်းကိုအဆင့်မြှင့်တင်ရန်ဖြစ်သည်။