PHP တွင်၎င်းသည်ခင်းကျင်းခြင်း၏အဓိကအကြောင်းရင်းများကိုနှိုင်းယှဉ်ရန်နှင့်ကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်ဘုံစစ်ဆင်ရေးတစ်ခုဖြစ်သည်။ Built-in array_diff_key () function ကိုသုံးရန် incray နှစ်ခုအကြားကွဲပြားခြားနားမှုကိုနှိုင်းယှဉ်ကြည့်ရှုရန် built-in function ကိုသုံးပါ။ ဤနည်းလမ်းသည်အလွန်ပြောင်းလွယ်ပြင်လွယ်ဖြစ်ပြီးတိကျသောလိုအပ်ချက်များကိုအညီစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။
ထို့နောက်ကျွန်ုပ်တို့သည် Array key အမည်များကိုမည်သို့နှိုင်းယှဉ်မည်ကိုပြသနိုင်ပြီး Custom Callback function မှတဆင့်ခြားနားချက်ကိုရှာတွေ့မည်။
Custom Callback function ကိုသတ်မှတ်ခြင်း - ပထမအချက်မှာ "ခင်းကျင်းမှုရှိအဓိကအကြောင်းရင်းများကိုနှိုင်းယှဉ်သော callback function ကိုသတ်မှတ်ရန်လိုအပ်သည်။
array_filter () function ကိုသုံးပါ ။ ကျွန်ုပ်တို့သည် array_filter () ကို သုံးနိုင်သည်။
array_diff_key () နှိုင်းယှဉ်ခြင်းအတွက်သုံးပါ ။ လိုအပ်ချက်များအရကျွန်ုပ်တို့သည် Array ၏အဓိကအကြောင်းရင်းအမည်များနှင့်နှိုင်းယှဉ်နိုင်သည်။
array key names ကိုဘယ်လိုနှိုင်းယှဉ်မယ်ဆိုတာဖေါ်ပြတဲ့ဥပမာပြည့်စုံတဲ့ဥပမာတစ်ခုပါ။
<?php
// ဥပမာခင်းကျင်းခြင်း1
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3,
"d" => 4
];
// ဥပမာခင်းကျင်းခြင်း2
$array2 = [
"a" => 1,
"b" => 2,
"e" => 5,
"f" => 6
];
// Custom Callback function ကို:အဓိကအမည်များအတူတူပင်ဖြစ်ကြောင်းနှိုင်းယှဉ်
function customKeyCompare($key1, $key2) {
// ဤနေရာတွင်သင်၏ကိုယ်ပိုင်နှိုင်းယှဉ်မှုယုတ္တိဗေဒကိုထည့်နိုင်သည်
// ဥပမာအားဖြင့်,ဤတွင်ရိုးရှင်းသောကိစ္စနှင့်မဆက်ဆံနိုင်သောနှိုင်းယှဉ်မှုတစ်ခုဖြစ်သည်
return strtolower($key1) === strtolower($key2);
}
// စိတ်ကြိုက်လုပ်ဆောင်ချက်များကို:နှစ်ခု arrays ၏အဓိကအမည်များကိုနှိုင်းယှဉ်နှင့်ခြားနားချက်ကိုရှာပါ
function compareArrayKeys($array1, $array2, $callback) {
// ခင်းကျင်း၏သော့အမည်ကိုရယူပါ
$keys1 = array_keys($array1);
$keys2 = array_keys($array2);
// နှစ်ခု arrays အတွက်အဓိကအမည်များကို filter,ကွဲပြားခြားနားသောသော့အမည်များကိုပြန်လာ
$diffKeys = array_filter($keys1, function($key) use ($keys2, $callback) {
foreach ($keys2 as $key2) {
if ($callback($key, $key2)) {
return false; // သော့အမည်များအတူတူပင်လျှင် skip
}
}
return true; // အခြားနည်းအားဖြင့်,ခြားနားချက်သော့ချက်အမည်ကိုပြန်သွားပါ
});
return $diffKeys;
}
// Array key name ခြားနားချက်ကိုရယူပါ
$diffKeys = compareArrayKeys($array1, $array2, "customKeyCompare");
// ခြားနားချက် key name ကိုပုံနှိပ်ပါ
echo "ခြားနားချက်သော့ချက်အမည်:\n";
print_r($diffKeys);
?>
ကျွန်ုပ်တို့သည်ရိုးရှင်းသော Callback funness funneycompare () သော့ချက်အမည်နှစ်ခုသည်အတူတူပင်နှင့်နှိုင်းယှဉ်ပါက, လိုအပ်သလို callback function ကိုနှိုင်းယှဉ်သည့်ယုတ္တိဗေဒကိုသင်ပြုပြင်နိုင်သည်။ ဥပမာအထက်ပါကုဒ်များကိုနှိုင်းယှဉ်ခြင်းအမှုကိုလျစ်လျူရှုထားသည်။
နှိုင်းယှဉ်ချက်ကို () function ကို array နှစ်ခု၏အဓိကအမည်များကိုနှိုင်းယှဉ်ရန်နှင့်ပထမ ဦး ဆုံးခင်းကျင်း၌တည်ရှိသောသော့အမည်များကိုပြန်ပို့ရန်အသုံးပြုသည်။
နောက်ဆုံးတွင် Array1 ၏အဓိကသော့ချက်အမည်ကို array_filter () မှတဆင့်ဖြတ်သန်းသွားသည်။ array2 တွင်သော့ချက်အမည်ကိုတစ်ခုနှင့်နှိုင်းယှဉ်ပါ။
ခြားနားချက်သော့ချက်အမည်:
Array
(
[2] => c
[3] => d
)
ဤဥပမာတွင် C နှင့် D သည်ပထမ array array1 တွင်ဖော်ပြထားသောသော့အမည်များဖြစ်ပြီးဒုတိယ array array2 တွင်မပါ 0 င်ပါ။
Custom Callback function များအနက်သော့ချက်စာလုံးနှစ်မျိုး၏အဓိကအမည်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စွာနှိုင်းယှဉ်နိုင်သည်။ တိကျသောလိုအပ်ချက်များနှင့်အညီနှိုင်းယှဉ်မှု၏ယုတ္တိနျကိုကိုင်တွယ်နိုင်သည်။ ဤချဉ်းကပ်နည်းသည်အထူးသဖြင့်တည်ဆောက်ထားသောလုပ်ဆောင်ချက်များအတွက်သီးခြားလိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်သည့်အခြေအနေများအတွက်အထူးသင့်တော်သည်။
ကွဲပြားခြားနားသော array key names အမျိုးအစားများကိုနှိုင်းယှဉ်ဖို့လိုလျှင်ဤနည်းလမ်းသည်အလွန်လက်တွေ့ကျသည့်လှည့်ကွက်တစ်ခုဖြစ်သည်။