လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_intersect_UAAST အတွက်ကွဲပြားခြားနားသောဒေတာအမျိုးအစားများ၏သော့များကိုမည်သို့ကိုင်တွယ်ရမည်နည်း။

array_intersect_UAAST အတွက်ကွဲပြားခြားနားသောဒေတာအမျိုးအစားများ၏သော့များကိုမည်သို့ကိုင်တွယ်ရမည်နည်း။

gitbox 2025-05-26

PHP တွင် Array_intersect_UAssoc () သည်အစွမ်းထက်သော်လည်းနားလည်မှုလွဲခြင်း function ဖြစ်သည်။ ၎င်းသည်ခင်းကျင်းမှုအမျိုးမျိုး၏သော့နှင့်တန်ဖိုးများကိုနှိုင်းယှဉ်ကြည့်ရှုရန်နှင့်သော့ချက်များကိုပြန်ပို့ရန်အတွက်သော့သတ်မှတ်ထားသည့်လုပ်ဆောင်ချက်များမှတဆင့်သော့များကိုနှိုင်းယှဉ်နိုင်သည်။ သို့သော်၎င်းသည်တိကျစွာသော့ချက်များကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သောကြောင့်ဖြစ်နိုင်ချေရှိသောပြ problem နာတစ်ခုပေါ်ပေါက်စေနိုင်သည်။

Array_intersect_UAST_UASTORE ၏အခြေခံအသုံးပြုမှု

array_intersect_UASESOC ၏အခြေခံအသုံးပြုမှုကိုလျင်မြန်စွာပြန်လည်သုံးသပ်ကြပါစို့။

 $result = array_intersect_uassoc(
    ['1' => 'apple', 2 => 'banana', 3 => 'cherry'],
    [1 => 'apple', '2' => 'banana', 3 => 'berry'],
    function ($a, $b) {
        return strcmp((string)$a, (string)$b);
    }
);
print_r($result);

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် strcmp () ကို အသုံးပြုသည်။ သော့များကိုနှိုင်းယှဉ်ရန်ကျွန်ုပ်တို့သည်သော့များကိုကြိုးကြိုးများသို့အတိအလင်းပြောင်းရန်သတိပြုပါ။ ၎င်းသည်မတူညီသောအမျိုးအစားများကြောင့်ဖြစ်ပေါ်လာသောမအောင်မြင်မှုများကိုရှောင်ရှားရန်ဖြစ်သည်။

အဓိကအမျိုးအစားပြ issues နာများ၏အဓိက

PHP ၏ Array ခလုတ်များသည်ကိန်းဂဏန်းများသို့မဟုတ်ကြိုးများဖြစ်နိုင်သည်။ PHP သည်၎င်းတို့အားအချို့သောအခြေအနေများတွင်အလိုအလျောက်ပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့်, '1' သည် အလိုအလျောက်ပြောင်းလဲလိမ့်မည်။ ဤအလိုအလျောက်ပြောင်းလဲခြင်း သည် ကိစ္စရပ်အများစုတွင်ပြ problems နာများဖြစ်ပေါ်စေသည်,

  • '1' နှင့် 1 ကို ပုံမှန်ခင်းကျင်းမှုတွင်တူညီသောအဖြစ်မှတ်ယူနိုင်သော်လည်း strcmp () နှင့်နှိုင်းယှဉ်လျှင်ကွဲပြားခြားနားသည်။

  • PHP ၏ === operator သည်အမျိုးအစားများနှင့်တန်ဖိုးများနှစ်မျိုးလုံးသည်တန်းတူဖြစ်ရန်လိုအပ်သည်

သို့သော်အမှန်မှာ, array_intersect_UAAST_UAST_AASSOC () သည် သင်ဖြတ်သန်းသွားသောနှိုင်းယှဉ်မှု function ကိုမှီခိုအားထားနေသဖြင့်အမျိုးအစားပြောင်းလဲမှုပြ the နာကိုသင်သတိပြုမိခြင်းရှိမရှိအပေါ်မူတည်သည်။

ကွဲပြားခြားနားသောသော့အမျိုးအစားများကိုဘယ်လိုကိုင်တွယ်မလဲ။

ကွဲပြားခြားနားသောအမျိုးအစားများကြောင့်နှိုင်းယှဉ်ချက်အမှားများကိုရှောင်ရှားရန်အောက်ပါနည်းဗျူဟာများကိုအကြံပြုပါသည်။

1 ။ ရှင်းလင်းပြတ်သားစွာပြောင်းလဲခြင်း key အမျိုးအစား

အလုံခြုံဆုံးနည်းလမ်းမှာခလုတ်ကိုနှိုင်းယှဉ်ခြင်း function တွင်တူညီသောအမျိုးအစား (များသောအားဖြင့် string or integer) သို့ကိုယ်တိုင်ပြောင်းလဲရန်ဖြစ်သည်။

 function normalize_key_compare($a, $b) {
    return strcmp((string)$a, (string)$b);
}

၎င်းသည် '1' နှင့် 1 ကိုတူညီသောသော့များအဖြစ်လုပ်ဆောင်သည်။

2 ။ တသမတ်တည်းခင်းကျင်းကိုသုံးပါ

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

 $array1 = [
    1 => 'apple',
    2 => 'banana',
    3 => 'cherry'
];
$array2 = [
    1 => 'apple',
    2 => 'banana',
    3 => 'berry'
];

ဤနည်းအားဖြင့် default strcmp () နှိုင်းယှဉ်မှုကိုအသုံးပြုနေလျှင်ပင်၎င်းသည်အမျိုးအစားရှုပ်ထွေးမှုကိုဖြစ်ပေါ်စေလိမ့်မည်မဟုတ်ပါ။

3 ။ အပေါင်းအသင်းဆိုင်ရာ arrays အတွက်သွယ်ဝိုက်ပြောင်းလဲမှုများကိုသတိပြုပါ

PHP သည် '01' ကိုအလိုအလျောက်ပြောင်းလဲလိမ့်မည်။ အကယ်. သင်သည်သော့များကို string form တွင်ထိန်းသိမ်းလိုပါကကိုးကားချက်များကို အသုံးပြု. ကိုးကားချက်များကိုအသုံးပြုရမည်။

 $array = [
    '01' => 'value'
];

ဒါပေမယ့်သင်ရေးပြီးပြီဆိုရင်

 $array = [
    01 => 'value'
];

သော့သည်ကိန်းတစ်ခုဖြစ်လာလိမ့်မည်။

လက်တွေ့ကျသော application အခြေအနေများ

သင့်တွင်ကွဲပြားခြားနားသောရင်းမြစ်များမှဒေတာအစု 2 ခုရှိသည်ဆိုပါစို့။ JSONS ရှိသော့များသည်ကြိုးများဖြစ်နိုင်သည်, ဒေတာဘေ့စ်များတွင်သော့များသည်ကိန်းဂဏန်းများဖြစ်သည်။

 $jsonData = json_decode('{"1":"apple","2":"banana"}', true);
$dbData = [
    1 => 'apple',
    2 => 'banana',
    3 => 'cherry'
];

သင်နှစ်ခု၏လမ်းဆုံကိုရှာဖွေချင်သည်, သင်ဤကဲ့သို့သောကိုင်တွယ်နိုင်ပါတယ်:

 $result = array_intersect_uassoc(
    $jsonData,
    $dbData,
    function ($a, $b) {
        return strcmp((string)$a, (string)$b);
    }
);
print_r($result);

ဤအချက်မှာ output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [1] => apple
    [2] => banana
)

အကျဉ်းချုပ်

array_intersect_UAST_UAST_AASSOC () ကို သုံးတဲ့အခါအဓိကနှိုင်းယှဉ်မှုယန္တရားနဲ့ကိုက်ညီမှုညီလာရေးရဲ့အရေးပါမှုကိုသင်နားလည်အောင်သေချာအောင်လုပ်ပါ။ ဒီမှာအဓိကအကြံပြုချက်အနည်းငယ်ရှိပါတယ်:

  • အမြဲတမ်းသင်၏သော့အမျိုးအစားကိုသေချာစွာသေချာပါစေ။

  • နှိုင်းယှဉ်လုပ်ဆောင်မှုများကိုအသုံးပြုသောအခါစည်းလုံးညီညွတ်မှုအမျိုးအစားများ;

  • ရလဒ်များသည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီပါကသော့များ၏အမျိုးအစားကွာခြားချက်ကို ဦး စွာစစ်ဆေးပါ။

  • ဖြစ်နိုင်လျှင်ဒေတာဖွဲ့စည်းပုံကိုကြိုတင်ပြင်ဆင်ထားပါ။

သော့ချက်အမျိုးအစားများကိုမှန်ကန်သောကိုင်တွယ်ခြင်းကအလားအလာရှိသောအမှားများကိုရှောင်ရှားနိုင်ရုံသာမက PHP အမျိုးအစားစနစ်ပေါ်တွင်သင်၏ထိန်းချုပ်မှုကိုတိုးတက်စေသည်။ PHP Array လုပ်ဆောင်ချက်များကိုပိုမိုလက်တွေ့ကျသောအချက်များအတွက် https://gitbox.net/php--pp-aray -utils သို့ဝင်ရောက်ပါ။