လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> multidimensional arrays (ပြန်လည်ပြင်ဆင်ခြင်း) ကိုအတိမ်အနက်ကိုအကောင်အထည်ဖော်ရန် array_diff () ကိုသုံးပါ။

multidimensional arrays (ပြန်လည်ပြင်ဆင်ခြင်း) ကိုအတိမ်အနက်ကိုအကောင်အထည်ဖော်ရန် array_diff () ကိုသုံးပါ။

M66 2025-05-17

PHP ၏ Array_diff () function ကိုမည်သို့အသုံးပြုရမည်နည်း။ ၎င်းကိုပြန်လည်ပြုပြင်မွမ်းမံရန်လိုအပ်ပါသလား။

PHP တွင် array_diff () သည်နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော arrays တွင်ကွဲပြားခြားနားသောတန်ဖိုးများကိုပြန်လည်ရရှိစေသည့်အလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ Multi- ရှုထောင်ခင်းကျင်းရေးရာများကိုနှိုင်းယှဉ်သောအခါ array_diff () ကို သာခင်းကျင်း၏ရှုထောင့်တစ်တွဲကိုနှိုင်းယှဉ်နိုင်သည်။ ကျွန်ုပ်တို့သည်ရှုထောင့်များစွာကိုနက်ရှိုင်းစွာနှိုင်းယှဉ်မှုများပြုလုပ်ရန်လိုပါက array_diff () သည်ဤလုပ်ငန်းကိုပြီးမြောက်ရန်မလုံလောက်ပါ။ Multidimensimensal Arrays အတိမ်အနက်ကိုဆန်းစစ်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည် array element layer တစ်ခုချင်းစီကိုအလွှာဖြင့်နှိုင်းယှဉ်ရန် recursion ကိုအသုံးပြုရန်လိုအပ်သည်။

ဤဆောင်းပါးသည် array_diff () function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

Array_diff ၏အခြေခံအသုံးပြုမှု ()

ပထမ ဦး စွာ 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 င်ပါ။

Multidimensional Arrays ၏နက်ရှိုင်းသောနှိုင်းယှဉ်

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 () ကို တိုက်ရိုက်အသုံးပြုလိမ့်မည်။

ဘာကြောင့် recursion လိုအပ်သလဲ။

Rearsion သည် Multidimensional Arrays များကိုနက်ရှိုင်းစွာနှိုင်းယှဉ်ခြင်းအတွက်အဓိကသော့ချက်ဖြစ်သည်။ Rearsion ကိုအသုံးပြုခြင်းသည်ခင်းကျင်းမှုတစ်ခုစီကိုမှန်ကန်စွာနှိုင်းယှဉ်သည်။ အကယ်. သင် recursion ကိုမသုံးပါက array ၏ထိပ်တန်းအလွှာကိုသာနှိုင်းယှဉ်နိုင်သည်။

နိဂုံးချုပ်အားဖြင့်

PHP ၏ array_diff () function သည်တစ်ရှုထောင်ခင်းကျင်းမှုများကိုနှိုင်းယှဉ်ရန်အတွက်အလွန်သင့်လျော်သည်။ Rearray မှတစ်ဆင့်ကျွန်ုပ်တို့သည် array တစ်ခုစီ၏ element များကိုတစ်ခုနှင့်နှိုင်းယှဉ်နိုင်သည်။ အထူးသဖြင့်အသိုက်ခင်းကျင်းမှုများကိုကိုင်တွယ်သောအခါဤချဉ်းကပ်မှုသည်အလွန်ထိရောက်သည်။

ပိုမိုရှုပ်ထွေးသောခင်းကျင်းနှိုင်းယှဉ်မှုများနှင့်နှိုင်းယှဉ်လျှင်သို့မဟုတ်ပြန်လည်ပြင်ဆင်ထားသောစွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ရန်လိုအပ်ပါကပိုမိုကောင်းမွန်သောပိုမိုကောင်းမွန်သောနည်းလမ်းအချို့ကိုထည့်သွင်းစဉ်းစားရန်လိုအပ်ပေမည်။

ဤဆောင်းပါးတွင်ဥပမာများက PHP ကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်အထောက်အကူပြုသည်။