PHP တွင် array_diff_UAAssoC () သည်အဓိကအမည်များနှင့်အဓိကတန်ဖိုးများကိုနှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသောနေရာများတွင်ကွဲပြားခြားနားမှုများကိုနှိုင်းယှဉ်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းသည် Array ၏တန်ဖိုးများကိုနှိုင်းယှဉ်ရုံသာမကအသုံးပြုသူသတ်မှတ်ထားသော callback လုပ်ဆောင်ချက်များကို အခြေခံ. ခင်းကျင်းမှု၏သော့များကိုလည်းနှိုင်းယှဉ်သည်။ single-byensensional arrays နှင့်ဆက်ဆံရာတွင် array_diff_UAAssoc () ကို အသုံးပြုရန်အလွန်ရိုးရှင်းပါသည်။ ဤဆောင်းပါးသည်ဤမေးခွန်းကိုဖြေ ဆို. လက်တွေ့ကျပုံဥပမာတစ်ခုပေးမည်။
ပထမ ဦး စွာ array_diff_Usassoc ၏အခြေခံအသုံးပြုမှုကိုသုံးသပ်ကြည့်ကြစို့။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
array1 : နှိုင်းယှဉ်ခံရဖို့ပထမ ဦး ဆုံး array ။
Array2 : ပထမ ဦး ဆုံးခင်းကျင်းနှင့်နှိုင်းယှဉ်ခံရဖို့ဒုတိယ array ။
key_compare_function - arrys နှစ်ခု၏သော့များကိုနှိုင်းယှဉ်ရန်အသုံးပြုသောအသုံးပြုသူသတ်မှတ်ထားသော callback function ကိုအသုံးပြုသည်။ သော့ချက်နှစ်ခုနှင့်နှိုင်းယှဉ်ခြင်း၏ရလဒ်ကိုကိုယ်စားပြုသည့်ကိန်းဂဏန်းတစ်ခု၏လုပ်ဆောင်မှုကိုပြန်လည်ပေးပို့ရမည်။
array 1 တွင်တည်ရှိသည့်သော့ချက်တန်ဖိုးအတွဲများပါ 0 င်သောခင်းကျင်းမှုတစ်ခုစီကိုပြန်လည်ရောက်ရှိစေသော်လည်း Araray2 တွင်မပါ 0 င်ပါ။
function compare_keys($key1, $key2) {
return strcasecmp($key1, $key2);
}
$array1 = [
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry'
];
$array2 = [
'A' => 'apple',
'B' => 'banana',
'd' => 'date'
];
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[c] => cherry
)
အပေါ်ကပြထားတဲ့အတိုင်း array_diff_Usassoc () သည် ခင်းကျင်းခြင်း၏သော့များကိုနှိုင်းယှဉ်ကြည့်ပါ။ chandback function ကို compare_keys () အပေါ် အခြေခံ. တူညီသောသော့နှစ်ခုသည်တန်းတူရှိမရှိဆုံးဖြတ်လိမ့်မည်။
MultidDadational array များအတွက်ကျွန်ုပ်တို့သည်ထိပ်တန်းသော့များကိုသာမကနှိုင်းယှဉ်ရန်လိုကောင်းလိုပေမည်။ သို့သော်အသိုက်ခင်းထားသည်။ ဤကိစ္စတွင် Array_Diff_UAASTC () ကို Multidimensional Arrays တွင်တိုက်ရိုက်မသုံးနိုင်ပါ။ ဤအခြေအနေကိုကိုင်တွယ်ရန်အပိုအလုပ်အချို့ပြုလုပ်ရန်လိုအပ်သည်။
ဘက်ပေါင်းစုံ multidimensional arrays ကိုပြန်လည်ပြင်ဆင်ခြင်း - Multidimensional Array များသည်အသိုက်တည်ဆောက်ပုံများဖြစ်သောကြောင့်ကျွန်ုပ်တို့ကို array တစ်ခုစီ၏အလွှာတစ်ခုစီကိုပြုပြင်ရန် recursive method များကိုသုံးနိုင်သည်။
Custom Callback function များကိုအသုံးပြုပြီးအဓိကတန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်း - Rearsion လုပ်ခြင်းလုပ်ငန်းစဉ်အတွင်းကျွန်ုပ်တို့တွင်ခင်းကျင်းမှုတစ်ခုစီ၏သော့ချက်တန်ဖိုးခြားနားချက်နှိုင်းယှဉ်မှုအတွက် callback function ကိုသတ်မှတ်နိုင်သည်။
function compare_keys($key1, $key2) {
return strcasecmp($key1, $key2);
}
function recursive_array_diff_uassoc($array1, $array2, $key_compare_func) {
$result = [];
foreach ($array1 as $key => $value) {
// လက်ရှိတန်ဖိုးတစ်ခုခင်းကျင်းလျှင်,recursive ခေါ်ဆိုမှု
if (is_array($value)) {
$sub_result = recursive_array_diff_uassoc($value, $array2[$key] ?? [], $key_compare_func);
if (!empty($sub_result)) {
$result[$key] = $sub_result;
}
} else {
// လက်ရှိတန်ဖိုးကို target ခင်းကျင်းအတွင်းရှိတန်ဖိုးကိုနှိုင်းယှဉ်ပါ
if (!isset($array2[$key]) || $key_compare_func($key, $key) !== 0) {
$result[$key] = $value;
}
}
}
return $result;
}
$array1 = [
'a' => 'apple',
'b' => ['ba' => 'banana', 'bb' => 'blueberry'],
'c' => 'cherry'
];
$array2 = [
'a' => 'apple',
'b' => ['ba' => 'banana', 'bb' => 'blackberry'],
'd' => 'date'
];
$result = recursive_array_diff_uassoc($array1, $array2, 'compare_keys');
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[b] => Array
(
[bb] => blueberry
)
[c] => cherry
)
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် multidimensional array ကိုပြန်လည်ပြုပြင်ခြင်းနှင့်တစ်ခုချင်းစီအတွက်ခင်းကျင်းမှုအဆင့်တစ်ခုအတွက်သော့ချက်တန်ဖိုးကွဲပြားခြားနားမှုများကိုပေါင်းစပ်။ လုပ်ဆောင်သည်။ Multidimensal Array ကိုနှိုင်းယှဉ်သောအခါကျွန်ုပ်တို့သည်အသိုက်ခင်းထားသော array များကိုသီးခြားစီလုပ်ဆောင်သည်ကိုသတိပြုပါ။
array_diff_UAAssoc () function ကို) function ကို value value value multies arrays နှင့်နှိုင်းယှဉ်ခြင်းကတိုက်ရိုက်မထောက်ပံ့ပါ။ Custom Callback လုပ်ဆောင်ချက်များကိုဖြင့်ကျွန်ုပ်တို့သည်အဓိကနှိုင်းယှဉ်ချက်နည်းလမ်းကိုတိကျစွာထိန်းချုပ်နိုင်ပြီးကျွန်ုပ်တို့၏နှိုင်းယှဉ်မှုကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ထိရောက်စေသည်။ အထက်ဖော်ပြပါဥပမာမှတစ်ဆင့်ရှုပ်ထွေးသော Multidimensional Arrays များကိုကိုင်တွယ်ရန် Arraiff_USAAST_UAASTIOR () ကို မည်သို့အသုံးပြုရမည်ကိုရှင်းရှင်းလင်းလင်းမြင်နိုင်သည်။