PHP ၏ Array_diff () function ကိုမည်သို့အသုံးပြုရမည်နည်း။ ၎င်းကိုပြန်လည်ပြုပြင်မွမ်းမံရန်လိုအပ်ပါသလား။
PHP တွင် array_diff () သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော arrays တွင်ကွဲပြားခြားနားသောတန်ဖိုးများကိုပြန်လည်ရရှိစေသည့်အလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ Multi- ရှုထောင်ခင်းကျင်းရေးရာများကိုနှိုင်းယှဉ်သောအခါ array_diff () ကို သာခင်းကျင်း၏ရှုထောင့်တစ်တွဲကိုနှိုင်းယှဉ်နိုင်သည်။ ကျွန်ုပ်တို့သည်ရှုထောင့်များစွာကိုနက်ရှိုင်းစွာနှိုင်းယှဉ်မှုများပြုလုပ်ရန်လိုပါက array_diff () သည်ဤလုပ်ငန်းကိုပြီးမြောက်ရန်မလုံလောက်ပါ။ Multidimensimensal Arrays အတိမ်အနက်ကိုဆန်းစစ်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည် array element layer တစ်ခုချင်းစီကိုအလွှာဖြင့်နှိုင်းယှဉ်ရန် recursion ကိုအသုံးပြုရန်လိုအပ်သည်။
ဤဆောင်းပါးသည် array_diff () function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
ပထမ ဦး စွာ Array_diff () ၏အခြေခံအသုံးပြုမှုကိုနားလည်ကြပါစို့။ ဤလုပ်ဆောင်ချက်သည်ပထမခင်းကျင်းမှုတွင်ပါ 0 င်သည့်ဒြပ်စင်များပါ 0 င်သော array တစ်ခုနှင့်နောက်ဆက်တွဲခင်းကျင်းမှုတွင်မပါ 0 င်ပါ။ ၎င်း၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_diff(array $array1, array ...$arrays): array
ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည်ရှုထောင့်များကို array_diff () နှင့်နှိုင်းယှဉ်ပုံကိုပြသည်။
$array1 = [1, 2, 3, 4];
$array2 = [3, 4, 5, 6];
$result = array_diff($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[0] => 1
[1] => 2
)
သင်မြင်နိုင်သည့်အတိုင်း array_diff () သည် array -array 1 တွင်တည်ရှိသည့်ဒြပ်စင်များကိုပြန်ပို့ပေးသော်လည်း ဒေါ်လာ array2 တွင်မပါ 0 င်ပါ။
MultidimenSAlal Arrays များကိုနှိုင်းယှဉ်ရန်အတွက် array_diff () ကို ပုံမှန်အားဖြင့်တိုက်ရိုက်မလုပ်ဆောင်နိုင်ပါ။ Array-element ၏ element သည် array_diff () သည် array_diff () ကိုနှိုင်းယှဉ်ခြင်းအစား inarraff ၏ရည်ညွှန်းချက်ကိုတိုက်ရိုက်နှိုင်းယှဉ်ပါလိမ့်မည်။
Multidimensimensional Arrays ကိုနက်ရှိုင်းစွာနှိုင်းယှဉ်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည် element တစ်ခုစီကိုအလွှာမှ array layer ဖြင့်နှိုင်းယှဉ်သော recursive function ကိုရေးရန်လိုအပ်သည်။ ဤတွင် Multensive array အတိမ်အနက်ကိုနှိုင်းယှဉ်ခြင်း၏ဥပမာတစ်ခုမှာဥပမာတစ်ခုဖြစ်သည်။
function array_diff_recursive($array1, $array2) {
$result = [];
// ပထမ ဦး ဆုံးခင်းကျင်းကျော်ကြား
foreach ($array1 as $key => $value) {
if (is_array($value) && isset($array2[$key]) && is_array($array2[$key])) {
// အကယ်. တန်ဖိုးသည်ခင်းကျင်းမှုတစ်ခုဖြစ်ပြီးဒုတိယခင်းကျင်းတွင်သက်ဆိုင်ရာခင်းကျင်းမှုတစ်ခုလည်းရှိသည်,recursive ခေါ်ဆိုမှု
$recursive_diff = array_diff_recursive($value, $array2[$key]);
if (!empty($recursive_diff)) {
$result[$key] = $recursive_diff;
}
} else {
// တန်ဖိုးတစ်ခုခင်းကျင်းမဟုတ်ပါဘူးလျှင်,တိုက်ရိုက်အသုံးပြုပါ array_diff နှိုင်းယှဉ်ပါ
if (!in_array($value, $array2)) {
$result[$key] = $value;
}
}
}
return $result;
}
$array1 = [
'a' => 1,
'b' => [2, 3, 4],
'c' => 5
];
$array2 = [
'a' => 1,
'b' => [2, 3],
'c' => 5
];
$result = array_diff_recursive($array1, $array2);
print_r($result);
ထုတ်လုပ်မှု -
Array
(
[b] => Array
(
[2] => 4
)
)
ဤဥပမာတွင် array_diff_Recursive () သည် array1 နှင့် $ array2 ဖြင့်ပစ္စည်းတစ်ခုစီကိုပြန်လည်စစ်ဆေးပါလိမ့်မည်။ အကယ်. ပစ္စည်းတစ်ခုသည်ခင်းကျင်းမှုတစ်ခုဖြစ်ပြီး array နှစ်ခုလုံးတွင်သက်ဆိုင်ရာခင်းကျင်းမှုရှိလျှင်၎င်းသည် subarray ကိုဆက်လက်နှိုင်းယှဉ်ခြင်း, အကယ်. ပစ္စည်းတစ်ခုသည်ခင်းကျင်းမှုတစ်ခုမဟုတ်ပါက၎င်းသည်နှိုင်းယှဉ်မှုအတွက် array_diff () ကို တိုက်ရိုက်အသုံးပြုလိမ့်မည်။
Rearsion သည် Multidimensional Arrays များကိုနက်ရှိုင်းစွာနှိုင်းယှဉ်ခြင်းအတွက်အဓိကသော့ချက်ဖြစ်သည်။ Rearsion ကိုအသုံးပြုခြင်းသည်ခင်းကျင်းမှုတစ်ခုစီကိုမှန်ကန်စွာနှိုင်းယှဉ်သည်။ အကယ်. သင် recursion ကိုမသုံးပါက array ၏ထိပ်တန်းအလွှာကိုသာနှိုင်းယှဉ်နိုင်သည်။
PHP ၏ array_diff () function သည်တစ်ရှုထောင်ခင်းကျင်းမှုများကိုနှိုင်းယှဉ်ရန်အတွက်အလွန်သင့်လျော်သည်။ Rearray မှတစ်ဆင့်ကျွန်ုပ်တို့သည် array တစ်ခုစီ၏ element များကိုတစ်ခုနှင့်နှိုင်းယှဉ်နိုင်သည်။ အထူးသဖြင့်အသိုက်ခင်းကျင်းမှုများကိုကိုင်တွယ်သောအခါဤချဉ်းကပ်မှုသည်အလွန်ထိရောက်သည်။
ပိုမိုရှုပ်ထွေးသောခင်းကျင်းနှိုင်းယှဉ်မှုများနှင့်နှိုင်းယှဉ်လျှင်သို့မဟုတ်ပြန်လည်ပြင်ဆင်ထားသောစွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်လိုအပ်ပါကပိုမိုကောင်းမွန်သောပိုမိုကောင်းမွန်သောနည်းလမ်းအချို့ကိုထည့်သွင်းစဉ်းစားရန်လိုအပ်ပေမည်။
ဤဆောင်းပါးတွင်ဥပမာများက PHP ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်အထောက်အကူပြုသည်။