PHP တွင် array_diff_key () function ကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော function ကို အသုံးပြု. ပထမ ဦး ဆုံးခင်းကျင်းမှုတွင်ပထမနေရာ၌မပါ 0 င်သောအမည်များ (သော့ချက်တန်ဖိုးအတွဲများပါ 0 င်သည့်နေရာများပါ 0 င်သည်။ သို့သော်ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါ developer များကအချက်အလက်အမျိုးအစားများသည် function ၏အပြုအမူကိုအကျိုးသက်ရောက်နိုင်သကဲ့သို့ developments သည်အဓိကသော့ချက်အမည်ရှိအချက်အလက်အမျိုးအစားကိုအထူးဂရုပြုရမည်။
array_diff_key () function ကို၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff_key(array $array1, array $array2, array ...$arrays): array
ဤလုပ်ဆောင်မှုသည် ဒေါ်လာ array1 နှင့်ချီတက်ပွဲများ ( ဒေါ်လာ array2 , $ array3 စသဖြင့်) နှင့်နှိုင်းယှဉ်ပြီး ဒေါ်လာ array တွင်ရှိသောအဓိကအမည်များပါ 0 င်သောနေရာအသစ်တစ်ခုကိုပြန်လည်ရယူသည်။ အထူးသဖြင့်၎င်းသည်သော့ချက်အမည်များကိုနှိုင်းယှဉ်ခြင်းဖြင့်လည်ပတ်သည်။
နမူနာကုဒ်:
$array1 = ['a' => 'apple', 'b' => 'banana', 10 => 'ten'];
$array2 = ['a' => 'apple', 'c' => 'cherry', 10 => 'ten'];
$result = array_diff_key($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[b] => banana
)
ဤဥပမာတွင် array_diff_key () function သည် $ array1 နှင့် $ array2 နှင့် နှိုင်း ယှဉ်ပြီးသော့ချက်အမည်နှင့်သက်ဆိုင်သောဒြပ်စင်ကိုပြန်ပို့သည် ။
Array_Diff_Key () သည် key name နှိုင်းယှဉ်မှုကိုပြုလုပ်သောအခါ အချက်အလက်များကိုအချက်အလက်အမျိုးအစားကို ထည့်သွင်းစဉ်းစားလိမ့်မည်။ ဆိုလိုသည်မှာ array နှစ်ခု၏အဓိကအကြောင်းရင်းများသည်ဆင်တူသော်လည်းကွဲပြားခြားနားသောဒေတာအမျိုးအစားများရှိလျှင် PHP သည်၎င်းတို့အားကွဲပြားသောသော့များအဖြစ်သတ်မှတ်သည်။ ဤအင်္ဂါရပ်သည် developer များအားမတော်တဆဖြစ်သည့် Debug ပြ problems နာအချို့ကိုတွေ့ကြုံစေနိုင်သည်။
$array1 = ['10' => 'value1'];
$array2 = [10 => 'value2'];
$result = array_diff_key($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[10] => value1
)
ဤဥပမာတွင် array1 နှင့် Array 2 ခုတွင်အဓိကတန်ဖိုး 10 တွင် 9 array 1 တွင် 9 array 1 တွင်သော့ 10 ချက် သည် string တစ်ခုဖြစ်ပြီးဒေါ်လာ 10 ခု သည်ကိန်းဂဏန်းဖြစ်သည်။ PHP တွင် string '10' နှင့် Integer 10 ကိုကွဲပြားခြားနားသောသော့ချက်များအဖြစ်သတ်မှတ်သည်။ ရလဒ်အ နေ ဖြင့် array_diff_ey () သည် သူတို့မကိုက်ညီဟုထင်မြင်သည် ။
$array1 = ['10' => 'apple', 10 => 'orange'];
$array2 = [10 => 'banana'];
$result = array_diff_key($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[10] => apple
)
Array1 (10) (string type) နှင့် 10 (instruction type) နှင့် 10) တွင်သော့ချက်နှစ်ခုရှိပေမယ့် array_diff_ey () သည် ကွဲပြားခြားနားသောသော့အမျိုးအစားများကြောင့်သူတို့ကိုကွဲပြားခြားနားသောသော့နှစ်မျိုးအဖြစ်သတ်မှတ်ထားသည်။ ထို့ကြောင့် 10 ခု သည် ဒေါ်လာ array2 တွင်ရှိလျှင်တောင်မှ '10' နှင့် 10 သည်ကွဲပြားခြားနားသောသော့များအဖြစ်လုပ်ဆောင်နေဆဲဖြစ်သောရလဒ်မှာ 10 နှင့်သက်ဆိုင်သည့်ဒြပ်စင်များပါ 0 င်သည်။
keynnes ကို Array တစ်ခုနဲ့နှိုင်းယှဉ်တဲ့အခါမှာ Keyname ရဲ့အချက်အလက်အမျိုးအစားဟာအမြဲတမ်းအတိအလင်းပြောင်းလဲလိမ့်မည်မဟုတ်ပါ။ ကွဲပြားခြားနားသောဒေတာအမျိုးအစားများသည်မတူကွဲပြားသောသော့များအဖြစ်မှားယွင်းစွာပြုလုပ်သောသော့ချက်အမည်များကိုမှားယွင်းစွာပြုလုပ်နိုင်သည့်သော့ချက်အမည်များကိုဖြစ်ပေါ်စေနိုင်သည် ။ ရောနှောထားသောအမျိုးအစားများကိုနှိုင်းယှဉ်သောအခါဤအခြေအနေသည်အထူးထင်ရှားသည်။
URLs များပါ 0 င်သည့် arls နှစ်ခုကို function တစ်ခုအတွက်သော့များအဖြစ်နှိုင်းယှဉ်ချင်သည်ဆိုပါစို့။ အကယ်. ဤ URL များသည်အဓိကအကြောင်းရင်းများအနေဖြင့်ကွဲပြားခြားနားသောအမျိုးအစားများရှိပါကပြ problems နာများဖြစ်ပေါ်နိုင်သည်။
$array1 = ['http://m66.net/page1' => 'content1'];
$array2 = ['http://m66.net/page1' => 'content2'];
$result = array_diff_key($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[http://m66.net/page1] => content1
)
array နှစ်ခု၏သော့များသည်တူညီပုံရသော်လည်း URL ကိုအခြားနေရာများတွင်ကွဲပြားခြားနားစွာပြုလုပ်နေပါကရလဒ်များကိုထိခိုက်နိုင်သည် (ထိုကဲ့သို့သောကွဲပြားခြားနားသောကိုးကားအမျိုးအစားများကိုသုံးခြင်းသို့မဟုတ်အမျိုးအစားပြောင်းလဲခြင်း)
အဓိကအမည်အမျိုးအစားများကြောင့်ဖြစ်ပေါ်လာသောအလားအလာရှိသောပြ problems နာများကိုရှောင်ရှားရန်အောက်ပါအစီအမံများကိုပြုလုပ်နိုင်သည်။
Unified key name data type : array တစ်ခုဖန်တီးတဲ့အခါ, သော့နာမည်ဒေတာအမျိုးအစားတသမတ်တည်းကြောင်းသေချာပါစေ။ ဥပမာအားဖြင့်, ကြိုးများသို့မဟုတ်ကိန်းများကိုသော့များအဖြစ်ယူပါ။
Casting ကိုအသုံးပြုပါ - သော့နာမည်နှိုင်းယှဉ်မှုကိုမနှိုင်းယှဉ်မီ strval () သို့မဟုတ် intval (intval) ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုအချက်အလက်အမျိုးအစားများသည်တသမတ်တည်းဖြစ်ကြောင်းသေချာစေရန်။
$array1 = [strval(10) => 'value1'];
$array2 = [10 => 'value2'];
$result = array_diff_key($array1, $array2);
print_r($result);
သော့ချက်အမည်၏အချက်အလက်အမျိုးအစားကိုပေါင်းစည်းခြင်းအားဖြင့်ကွဲပြားခြားနားသောအမျိုးအစားများကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုရှောင်ပါ။
array_diff_key () function ကိုကွဲပြားခြားနားသော key name data အမျိုးအစားများကြောင့်ထိခိုက်သည်, ဒီ function ကိုအသုံးပြုတဲ့အခါအထူးအာရုံစိုက်ရန်လိုအပ်သည်။ အရေးပါသောအရေးယူသည့်သော့ချက်စာလုံးအမျိုးအစားများသည်ကိုက်ညီမှုမရှိပါက PHP သည်၎င်းတို့အားအမြင်အာရုံနှင့်အတူတူပင်လျှင်၎င်းတို့ကိုကွဲပြားခြားနားသောသော့များအဖြစ်သတ်မှတ်သည်။ ၎င်းသည်အထူးသဖြင့် URLs များသို့မဟုတ်အခြား dymonically ထုတ်လုပ်ထားသောသော့အမည်များပါ 0 င်သည့် array များနှင့်ဆက်ဆံရာတွင်ကိုင်တွယ်သည့်အခါ၎င်းသည်ခက်ခဲသောပြ issues နာများကိုရှာဖွေတွေ့ရှိနိုင်သည်။ ဤပြ problems နာများကိုရှောင်ရှားရန်သော့ချက်အမည်များကိုနှိုင်းယှဉ်ခြင်းမပြုမီအဓိကအမည်များအမျိုးအစားများကိုပေါင်းစည်းရန်သို့မဟုတ်ပြောင်းလဲခြင်းကိုနှိုင်းယှဉ်ခြင်းမပြုမီရိုက်ကူးရန်အကြံပြုပါသည်။
အထက်ဖော်ပြပါအချက်များသည် Array_Diff_Key () function ကိုအသုံးပြုခြင်းတွင်အဓိကသောင်းစာအချက်အလက်အမျိုးအစားပြ problem နာ၏အသေးစိတ်ရှင်းပြချက်ဖြစ်သည်။ ဤဆောင်းပါးသည်သင့်အား array_diff_key () function ကိုပိုမိုနားလည်ပြီးအသုံးပြုရန်ကူညီပေးပါ။