ကျွန်ုပ်တို့တွင် multidimensional array နှစ်ခုရှိသည်ဆိုပါစို့။ ဤနှစ်ခု array နှစ်ခုကိုနှိုင်းယှဉ်ချင်ကြပြီးပထမခင်းကျင်းမှုတွင်တွေ့ရသောဒြပ်စင်များကိုပြန်ပို့ချင်သော်လည်းဒုတိယခင်းကျင်းတွင်မတည်ရှိပါ။ ကျွန်ုပ်တို့သည်ခင်းကျင်းမှု၏အလွှာတစ်ခုစီမှတစ်ဆင့် ထပ်မံ. ရယူနိုင်ရန်နှင့်နှိုင်းယှဉ်ချက်အတွက် array_diff_assoc () ကို လုပ်ဆောင်နိုင်သည်။
PHP ကို အသုံးပြု. array_diff_assoc () ကို အကောင်အထည်ဖော်ရန်အတွက်နမူနာကုဒ်ဖြစ်သည်။
<?php
/**
* ပုံမှန် multi- ရှုထောင်ခင်းကျင်း arrays ကို recursiven array_diff_assoc() လုပ်ဆောင်ချက်
*
* @param array $array1 ပထမ ဦး ဆုံးခင်းကျင်း
* @param array $array2 ဒုတိယ array
* @return array နှစ်ခု array အကြားခြားနားချက်၏ရလဒ်ကိုပြန်
*/
function recursive_array_diff_assoc($array1, $array2) {
$difference = array();
// 遍历ပထမ ဦး ဆုံးခင်းကျင်း
foreach ($array1 as $key => $value) {
// 如果ဒုတိယ array没有此键,သို့မဟုတ်ဤသော့၏တန်ဖိုးကွဲပြားခြားနားသည်
if (!array_key_exists($key, $array2)) {
// တန်ဖိုးတစ်ခုခင်းကျင်းလျှင်,recursive နှိုင်းယှဉ်
$difference[$key] = is_array($value) ? recursive_array_diff_assoc($value, array()) : $value;
} else {
// တန်ဖိုးတစ်ခုခင်းကျင်းလျှင်,recursive နှိုင်းယှဉ်
if (is_array($value) && is_array($array2[$key])) {
$recursive_diff = recursive_array_diff_assoc($value, $array2[$key]);
if (!empty($recursive_diff)) {
$difference[$key] = $recursive_diff;
}
} elseif ($value !== $array2[$key]) {
// တန်ဖိုးကွဲပြားခြားနားလျှင်,ခြားနားချက်ကိုထည့်ပါ
$difference[$key] = $value;
}
}
}
return $difference;
}
// ဥပမာခင်းကျင်းခြင်း
$array1 = array(
'a' => 1,
'b' => array(
'x' => 2,
'y' => 3
),
'c' => 4
);
$array2 = array(
'a' => 1,
'b' => array(
'x' => 2,
'y' => 4
),
'c' => 5
);
// recursive နည်းလမ်းများခေါ်ဆိုခြင်း
$result = recursive_array_diff_assoc($array1, $array2);
// ရလဒ်များကိုပုံနှိပ်
print_r($result);
?>
recursive_array_diff_assoc () function ကို :
ဤလုပ်ဆောင်ချက်သည် parray1 နှင့် $ array2 အဖြစ် array နှစ်ခုကိုကြာသည်။
Forach မှပထမ ဦး ဆုံးခင်းကျင်းမှုတွင်သော့ချက်တန်ဖိုးတွဲတစ်ခုစီကိုကျွန်ုပ်တို့ဖြတ်သန်းသွားသည်။
ဒြပ်စင်တစ်ခုစီအတွက်ကျွန်ုပ်တို့သည်သော့ကိုဒုတိယခင်းကျင်းတွင်ထည့်သွင်းထားခြင်းရှိမရှိကို ဦး စွာစစ်ဆေးသည်။
အကယ်. ဒြပ်စင်သည်ခင်းကျင်းနေပါက Multidimensional Array ကို recursive_array_diff_diff_diff_diff_soc () ကိုအသုံးပြုသည်။
နောက်ဆုံးအနေဖြင့်မတူညီသောဒြပ်စင်များအားလုံးကိုပြန်ပို့သည်။
recursive အပြောင်းအလဲနဲ့ :
Array Element ကိုကြုံတွေ့ရသောအခါကျွန်ုပ်တို့သည်ရှုထောင့်အမျိုးမျိုးရှိအလွှာတစ်ခုစီကိုအလွှာတစ်ခုစီကိုနှိုင်းယှဉ်ရန်သေချာစေရန်တူညီသော function ကိုပြန်လည်ထူထောင်နိုင်သည်။
ကြုံတွေ့ခဲ့သည့်ဒြပ်စင်သည်အခြေခံဒေတာအမျိုးအစား (ဥပမာကိန်း, ကြိုးများစသည်တို့) သည်အခြေခံဒေတာအမျိုးအစားတစ်ခုဖြစ်သည်။
ရလဒ်များ output ကို :
Print_R ($ ရလဒ်) ရလဒ်ကို output လုပ်ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့် ဒေါ်လာ array1 နှင့် $ array2 နှင့် နှိုင်းယှဉ်လျှင် output နှစ်ခုအကြားခြားနားချက်ပါရှိသည်။
Array
(
[b] => Array
(
[y] => 3
)
[c] => 4
)
recursive mode မှတဆင့် PHP တွင် multiensive arrays ၏ array_diff_assoc () function ကိုအကောင်အထည်ဖော်နိုင်ပါသည်။ ဤနည်းလမ်းသည် array တွင် subarrays တွင်အသိုက်လုပ်ထားသော subarrays များရှိသည့်တိုင်အဆင့်တစ်ခုစီတွင်အဓိကအမည်များနှင့်တန်ဖိုးများကွဲပြားမှုကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်ဟုသေချာစေသည်။