လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ရှုပ်ထွေးသောဒေတာအဆောက်အအုံများတည်ဆောက်ရန် array_reduce () နှင့်အတူပေါင်းစပ်

ရှုပ်ထွေးသောဒေတာအဆောက်အအုံများတည်ဆောက်ရန် array_reduce () နှင့်အတူပေါင်းစပ်

M66 2025-06-07

PHP, array_comboine () နှင့် array_reduce () တွင် array_reduce () သည်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်များဖြစ်သည်။ နှစ်ခုကို arrays နှစ်ခုကိုတွဲဖက်စည်းမျဉ်းစည်းကမ်းများအဖြစ်ပေါင်းစပ်ရန်နှင့် array elecy များကိုလျှော့ချရန် (I.E. ရိုးရှင်းသို့မဟုတ်ပြောင်းလဲခြင်း) ကိုလျှော့ချရန်။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအတူတကွအသုံးပြုသောအခါပိုမိုရှုပ်ထွေးသောဒေတာအဆောက်အအုံများကိုအလွယ်တကူတည်ဆောက်နိုင်သည်။ ဤဆောင်းပါးတွင်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ထားသောအသိုက်ထည့်သွင်းထားသော array သို့မဟုတ်အခြားရှုပ်ထွေးသောဒေတာတည်ဆောက်ပုံများကိုတည်ဆောက်ရန်ကျွန်ုပ်တို့ကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာပါမည်။

Array_comBine () ဘာလဲ။

Array_ComBine () သည် php built-in function တစ်ခုဖြစ်သော PHP built-in function တစ်ခုဖြစ်သည်။ ပထမခင်းကျင်းမှု၏တန်ဖိုးနှင့်ဒုတိယခင်းကျင်းမှု၏တန်ဖိုးကိုတန်ဖိုးအဖြစ်တန်ဖိုးထားသည်။ အကယ်. Array နှစ်ခုသည်မတူညီသောအရှည်များရှိပါက function သည် မှားယွင်းသော အရာဖြစ်သည်။

နမူနာကုဒ်:

 $keys = ["name", "age", "gender"];
$values = ["John", 25, "male"];

$result = array_combine($keys, $values);
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [name] => John
    [age] => 25
    [gender] => male
)

Array_reduce () ?

array_reduce () သည် PHP built-in function တစ်ခုဖြစ်ပြီး၎င်းသည် calterback function တစ်ခုမှတဆင့်တဖြည်းဖြည်းချင်းတန်ဖိုးထားရန်အသုံးပြုသည်။ ပုံမှန်အားဖြင့်ဤတန်ဖိုးသည်စုဆောင်းထားသောပေါင်းလဒ်သို့မဟုတ်အခြားရှုပ်ထွေးသောအဆောက်အအုံများဖြစ်နိုင်သည်။

နမူနာကုဒ်:

 $numbers = [1, 2, 3, 4, 5];

$sum = array_reduce($numbers, function($carry, $item) {
    return $carry + $item;
});

echo $sum; // ထုတ်လုပ်ခြင်း 15

array_combeind () နှင့် array_reduce () ကို သုံးပါ

ရှုပ်ထွေးသောဒေတာတည်ဆောက်ပုံများနှင့်ကိုင်တွယ်သောအခါ array_combine () နှင့် array_reduce () သည်အထူးသဖြင့်သော့ချက်တန်ဖိုးအတွဲများပေါ်တွင် အခြေခံ. အကျဉ်းချုပ်ဖွဲ့စည်းပုံအချို့ကိုထုတ်လုပ်ရန်လိုအပ်သည့်အခါအလွန်အသုံးဝင်သည်။ ဒီလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ခြင်းဖြင့်ရှုပ်ထွေးပြီးအသိုက်ခင်းကျင်းမှုကိုကျွန်ုပ်တို့ဖန်တီးနိုင်သည်။

ဥပမာ - ဒေတာအစုတခုအပေါ်အခြေခံပြီးအပိုထူထပ်သောအသိုက် activative ခင်းကျင်းတည်ဆောက်ခြင်း

ကျွန်ုပ်တို့တွင်ကျောင်းသားများ၏အဆင့်အတန်းများပါ 0 င်သည့်အချက်အလက်များအနေဖြင့်ကျွန်ုပ်တို့သည်ဘာသာရပ်မှအုပ်စုတစ်ခုစီကိုစုစည်းပြီးဘာသာရပ်တစ်ခုစီအတွက်အဆင့်အတန်းအကျဉ်းချုပ်ကိုအကျဉ်းချုပ်ဖော်ပြထားသည်

 $students = [
    ["name" => "John", "subject" => "Math", "score" => 85],
    ["name" => "Alice", "subject" => "Math", "score" => 92],
    ["name" => "Bob", "subject" => "Math", "score" => 78],
    ["name" => "John", "subject" => "Science", "score" => 88],
    ["name" => "Alice", "subject" => "Science", "score" => 94],
    ["name" => "Bob", "subject" => "Science", "score" => 79],
];

$subjects = array_reduce($students, function($carry, $item) {
    // အသုံးပြု subject သော့တစ်ခု,ရမှတ်များကိုတန်ဖိုးများအဖြစ်အုပ်စုဖွဲ့သည်
    if (!isset($carry[$item['subject']])) {
        $carry[$item['subject']] = [];
    }
    $carry[$item['subject']][] = $item['score'];
    return $carry;
}, []);

print_r($subjects);

ထုတ်လုပ်မှု -

 Array
(
    [Math] => Array
        (
            [0] => 85
            [1] => 92
            [2] => 78
        )

    [Science] => Array
        (
            [0] => 88
            [1] => 94
            [2] => 79
        )
)

ဒီဥပမာမှာကျွန်တော်တို့ဟာ ဘာသာရပ်တွေအပေါ် အခြေခံပြီးအုပ်စုလိုက်ကျောင်းသား ရမှတ်တွေကို ပထမ ဦး ဆုံး array_reduce () ကို အရင်သုံးတယ်။ ထိုအခါကျွန်ုပ်တို့သည်အကြောင်းအရာတစ်ခုစီ၏ကျောင်းသားအမည်များနှင့်အဆင့်အတန်းကိုမြေပုံဆွဲရန် array_combine () ကို ထပ်မံ အသုံးပြု. ပိုမိုရှုပ်ထွေးသောဖွဲ့စည်းပုံကိုတည်ဆောက်ရန်။

နောက်ထပ်ရှုပ်ထွေးမှုများ - Multi-layer nested array များတည်ဆောက်ခြင်း

နောက်တစ်ခုကတော့ကျောင်းသားနာမည်တစ်ခုစီအတွက်ကျောင်းသားရမှတ်တစ်ခုစီကိုထပ်မံဖြိုခွဲဖို့ array_combine () ကို ဆက်သုံးနေတယ်။

 $students = [
    ["name" => "John", "subject" => "Math", "score" => 85],
    ["name" => "Alice", "subject" => "Math", "score" => 92],
    ["name" => "Bob", "subject" => "Math", "score" => 78],
    ["name" => "John", "subject" => "Science", "score" => 88],
    ["name" => "Alice", "subject" => "Science", "score" => 94],
    ["name" => "Bob", "subject" => "Science", "score" => 79],
];

$subjects = array_reduce($students, function($carry, $item) {
    if (!isset($carry[$item['subject']])) {
        $carry[$item['subject']] = [];
    }
    // 以学生的姓名သော့တစ်ခု,အဆင့်များကိုတန်ဖိုးများအဖြစ်သို့ချိတ်ဆက်ထားသည်
    $carry[$item['subject']] = array_combine(
        array_column($carry[$item['subject']], 'name'), 
        array_column($carry[$item['subject']], 'score')
    );
    return $carry;
}, []);

print_r($subjects);

ဤအချိန်တွင်ကျွန်ုပ်တို့သည်သက်ဆိုင်ရာသော့နှင့်တန်ဖိုးများကို array_colum () မှတဆင့်ဖြည့်ဆည်းပေးပြီးနောက်ဆုံးတွင်ကျွန်ုပ်တို့သည်ပိုမိုရှုပ်ထွေးသောအသိုက်ခင်းကျင်းမှုကိုတည်ဆောက်နိုင်ပြီးကျွန်ုပ်တို့အားဘာသာရပ်နှင့်ကျောင်းသားအမည်များအရရှာဖွေရန်နှင့်လည်ပတ်ခွင့်ပြုသည်။

ဤနည်းအားဖြင့် array_combine () နှင့် array_reduce () ကိုပေါင်းစပ်ခြင်းအားဖြင့်, ကွဲပြားခြားနားသောစည်းမျဉ်းစည်းကမ်းတွေအရအုပ်စုလိုက်အဆောက်အအုံဖွဲ့စည်းတည်ဆောက်ပုံကိုအလွယ်တကူတည်ဆောက်နိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤလုပ်ဆောင်မှုများကိုအသုံးပြုရန်ပြောင်းလွယ်ပြင်လွယ်စွာအသုံးပြုခြင်းသည်အချက်အလက်အပြောင်းအလဲအတွက်အချက်အလက်များအားထိရောက်မှုနှင့်ဖတ်နိုင်မှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။