လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> recursive method ကို အသုံးပြု. Multidimensive Warrays of multidimensive array (arraiff_assoc) ကိုအကောင်အထည်ဖော်ပါ

recursive method ကို အသုံးပြု. Multidimensive Warrays of multidimensive array (arraiff_assoc) ကိုအကောင်အထည်ဖော်ပါ

M66 2025-06-06

ကျွန်ုပ်တို့တွင် 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);

?>

code parsing

  1. recursive_array_diff_assoc () function ကို :

    • ဤလုပ်ဆောင်ချက်သည် parray1 နှင့် $ array2 အဖြစ် array နှစ်ခုကိုကြာသည်။

    • Forach မှပထမ ဦး ဆုံးခင်းကျင်းမှုတွင်သော့ချက်တန်ဖိုးတွဲတစ်ခုစီကိုကျွန်ုပ်တို့ဖြတ်သန်းသွားသည်။

    • ဒြပ်စင်တစ်ခုစီအတွက်ကျွန်ုပ်တို့သည်သော့ကိုဒုတိယခင်းကျင်းတွင်ထည့်သွင်းထားခြင်းရှိမရှိကို ဦး စွာစစ်ဆေးသည်။

    • အကယ်. ဒြပ်စင်သည်ခင်းကျင်းနေပါက Multidimensional Array ကို recursive_array_diff_diff_diff_diff_soc () ကိုအသုံးပြုသည်။

    • နောက်ဆုံးအနေဖြင့်မတူညီသောဒြပ်စင်များအားလုံးကိုပြန်ပို့သည်။

  2. recursive အပြောင်းအလဲနဲ့ :

    • Array Element ကိုကြုံတွေ့ရသောအခါကျွန်ုပ်တို့သည်ရှုထောင့်အမျိုးမျိုးရှိအလွှာတစ်ခုစီကိုအလွှာတစ်ခုစီကိုနှိုင်းယှဉ်ရန်သေချာစေရန်တူညီသော function ကိုပြန်လည်ထူထောင်နိုင်သည်။

    • ကြုံတွေ့ခဲ့သည့်ဒြပ်စင်သည်အခြေခံဒေတာအမျိုးအစား (ဥပမာကိန်း, ကြိုးများစသည်တို့) သည်အခြေခံဒေတာအမျိုးအစားတစ်ခုဖြစ်သည်။

  3. ရလဒ်များ output ကို :

    • Print_R ($ ရလဒ်) ရလဒ်ကို output လုပ်ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့် ဒေါ်လာ array1 နှင့် $ array2 နှင့် နှိုင်းယှဉ်လျှင် output နှစ်ခုအကြားခြားနားချက်ပါရှိသည်။

နမူနာ output ကို

 Array
(
    [b] => Array
        (
            [y] => 3
        )
    [c] => 4
)

အကျဉ်းချုပ်

recursive mode မှတဆင့် PHP တွင် multiensive arrays ၏ array_diff_assoc () function ကိုအကောင်အထည်ဖော်နိုင်ပါသည်။ ဤနည်းလမ်းသည် array တွင် subarrays တွင်အသိုက်လုပ်ထားသော subarrays များရှိသည့်တိုင်အဆင့်တစ်ခုစီတွင်အဓိကအမည်များနှင့်တန်ဖိုးများကွဲပြားမှုကိုမှန်ကန်စွာကိုင်တွယ်နိုင်သည်ဟုသေချာစေသည်။