လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_diff_assoc ရှိ string နှင့်နံပါတ်အမျိုးအစားများနှိုင်းယှဉ်ခြင်း ()

array_diff_assoc ရှိ string နှင့်နံပါတ်အမျိုးအစားများနှိုင်းယှဉ်ခြင်း ()

M66 2025-06-07

PHP ပရိုဂရမ်တွင် array_diff_assoc () function ကိုအသုံးပြုသည်။ array နှစ်ခုထက်ပိုသော in ရာမစ်နှင့်နှိုင်းယှဉ်ရန်, ၎င်းသည် Array ပမာဏကိုနှိုင်းယှဉ်ခြင်းအားဖြင့်အလုပ်လုပ်သည်။ သို့သော် developer များစွာသည် array_diff_assoc () ကို အသုံးပြုသည့်အခါအထူးသဖြင့်ကြိုးနှင့်ဂဏန်းအမျိုးအစားများကိုကိုင်တွယ်သောအခါပြ problems နာအချို့ကိုကြုံတွေ့ရသည်။ ဤဆောင်းပါးသည်ဤအပင်များနားလည်မှုလွဲမှားခြင်းများနှင့်သူတို့၏အကြောင်းပြချက်များကိုစူးစမ်းလေ့လာပါမည်။

1 ။ array_diff_assoc () အလုပ်လုပ်ပုံ

ပြ the နာကိုအသေးစိတ်မဆွေးနွေးမီ Array_diff_assoc () function ကို အခြေခံ. သုံးသပ်ကြည့်ကြစို့။

 <?php
$array1 = ['a' => 'apple', 'b' => 10, 'c' => 15];
$array2 = ['a' => 'apple', 'b' => '10', 'c' => 20];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

output ရလဒ် -

 Array
(
    [b] => 10
    [c] => 15
)

အထက်ဖော်ပြပါဥပမာတွင် array - b ၏အဓိကတန်ဖိုးသည် string သည် '10 ' သည် '10' နှင့် 'B' key value's 'array1 ၏အဓိကတန်ဖိုးသည် integer 10 ,

2 ။ string ကိုနှင့်နံပါတ်အမျိုးအစားအကြားနှိုင်းယှဉ်၏သွယ်ဝိုက်ပြ problem နာ

ဤပြ problem နာသည် PHP တွင်သွယ်ဝိုက်အမျိုးအစားပြောင်းလဲခြင်းဖြင့်ဖြစ်ပေါ်သည်။ ကွဲပြားခြားနားသောဒေတာအမျိုးအစားများကိုနှိုင်းယှဉ်ရန်သင်ကြိုးစားသည့်အခါ PHP သည်၎င်းကိုတူညီသောအမျိုးအစားသို့အလိုအလျောက်ပြောင်းလဲလိမ့်မည်။ ဥပမာအားဖြင့်, array_diff_assoc () နှိုင်းယှဉ်ကြည့်ရှုသည့်အခါ array ရှိ key-value pair တစုံပါ 0 င်ပါက string type အမျိုးအစားနှင့်ဂဏန်းအမျိုးအစားများပါ 0 င်ပါက PHP သည်၎င်းတို့အားကွဲပြားသောအမျိုးအစားများအဖြစ်ယူမှတ်လိမ့်မည်။

ဥပမာအားဖြင့်:

 <?php
$array1 = [0 => '10'];
$array2 = [0 => 10];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

ဤကုဒ်ရလဒ်များ:

 Array
(
    [0] => 10
)

Array_diff_assoc () သည် သော့ချက်များနှင့်တန်ဖိုးများကိုနှိုင်းယှဉ်ရန်အသုံးပြုသော်လည်းနှစ် ဦး စလုံးသည် array တွင်တူညီသော "10" အတူတူပင်ဖြစ်သည်။

3 ။ အမျိုးအစားပြောင်းလဲခြင်းနှင့်အတူအလားအလာရှိသောပြ problems နာများ

PHP တွင်သွယ်ဝိုက်သောအမျိုးအစားပြောင်းလဲခြင်းသည်မတိကျသောရလဒ်များကိုပြန်လည်ရောက်ရှိရန် array_diff_assoc () function ကိုဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည် string တစ်ခုနှင့်နှိုင်းယှဉ်ပါကနံပါတ်တစ် PHP သည်နံပါတ်ကိုနံပါတ်တစ်ခုသို့ပြောင်းလဲခြင်းသို့မဟုတ်ပုံမှန်အားဖြင့်နံပါတ်သို့ပြောင်းခြင်းသို့မဟုတ် string သို့ပြောင်းလဲလိမ့်မည်။

ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည်အမှားတစ်ခုနှင့်ကြုံတွေ့ရလိမ့်မည်။

 <?php
$array1 = ['a' => '123'];
$array2 = ['a' => 123];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

ထုတ်လုပ်မှု -

 Array
(
    [a] => 123
)

array_diff_assoc () က '123' နှင့် 123 သည်ကွဲပြားခြားနားပြီး 123 ကွဲပြားကြောင်းယုံကြည်သည်။

4 ။ ဒီနားလည်မှုလွဲမှားခြင်းတွေကိုဘယ်လိုရှောင်ရှားရမလဲ။

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

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

နှိုင်းယှဉ်ခြင်းမပြုမီတန်ဖိုးများအားလုံးသည် string တစ်ခုသို့မဟုတ်နံပါတ်သို့ဥပမာအမျိုးအစားနှင့်တူညီသောအမျိုးအစားသို့ကူးပြောင်းနိုင်သည်။

 <?php
$array1 = ['a' => (string) 123];
$array2 = ['a' => '123'];
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

ဤကုဒ်သည်နှစ် ဦး စလုံးသည်တူညီသောအမျိုးအစား (string) နှင့်အတူတူပင်ဖြစ်သည်, ထို့ကြောင့်မလိုအပ်သောအမှားများကိုရှောင်ရှားရန်သေချာသည်။

4.2 array_map () ကို array တွင်ပြောင်းလဲရန်အသုံးပြုပါ

အကယ် . သင်ဟာစံနှုန်းအားလုံးကိုခင်းကျင်းဖို့လိုလျှင်,

 <?php
$array1 = ['a' => 123, 'b' => 456];
$array2 = ['a' => '123', 'b' => '456'];
$array1 = array_map('strval', $array1); // တန်ဖိုးများအားလုံးကိုကြိုးများသို့ပြောင်းပါ
$array2 = array_map('strval', $array2);
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

ဤအချက်သည် Array နှစ်ခုစလုံးမှတန်ဖိုးများသည် array_diff_assoc () နှိုင်းယှဉ်ချက်တွင်တသမတ်တည်းရှိနေဆဲဖြစ်သည်။

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

PHP တွင်သွယ်ဝိုက်သောအမျိုးအစားပြောင်းလဲခြင်းကြောင့် array_diff_ adiff_soc () function ကိုအသုံးပြုသောအခါ string နှင့်နံပါတ်အမျိုးအစားများကိုမကြာခဏမှားလေ့ရှိသည်။ developer တစ် ဦး သည်ခင်းကျင်းနှိုင်းယှဉ်မှုများပြုလုပ်သောအခါနှိုင်းယှဉ်ခြင်းတွင်ပါ 0 င်သောတန်ဖိုးအမျိုးအစားများကိုတသမတ်တည်းဖြစ်ကြောင်းသေချာစေရန်အကောင်းဆုံးဖြစ်သည်။ ရှင်းလင်းပြတ်သားစွာပြောင်းလဲခြင်း (သို့ ) array_map () ကဲ့သို့သောအထောက်အကူပြုလုပ်ငန်းများအသုံးပြုခြင်းသည်အမျိုးအစားမကိုက်ညီသောပြ problems နာများကိုရှောင်ရှားနိုင်ပြီးနှိုင်းယှဉ်မှုများပိုမိုတိကျသည်။