လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_chunk တွင် array_reduce ကို သုံး. ဒေတာကိုစုစည်းရန်

array_chunk တွင် array_reduce ကို သုံး. ဒေတာကိုစုစည်းရန်

M66 2025-04-26

PHP တွင် Array_chunk နှင့် array_reduce သည်အလွန်အားကောင်းသည့်ခင်းကျင်းသောစစ်ဆင်ရေးလုပ်ဆောင်ချက်များဖြစ်သည်။ Array_chunk သည် ကြီးမားသောခင်းကျင်းမှုကိုသေးငယ်သောအရာများစွာကိုဝေမျှနိုင်သည် အချို့ဖြစ်ရပ်များတွင်ကျွန်ုပ်တို့သည်စည်းမျဉ်းများကိုအုပ်စုဖွဲ့ရန်နှင့်စုစည်းပြီးနောက်စုစည်းရေးစစ်ဆင်ရေးအချို့ပြုလုပ်လိုသည်။ ဤဆောင်းပါးသည်ဤရည်မှန်းချက်အောင်မြင်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုရှင်းပြပါမည်။

1 ။ Array_chunk function ကို၏အခြေခံအသုံးပြုမှု

Array_Chunk သည် PHP ရှိ function တစ်ခုဖြစ်သည်။ ၎င်းသည်မူရင်းခင်းကျင်းကိုသတ်မှတ်ထားသောအရွယ်အစားအရ subarray များစွာကိုခွဲဝေပေးပြီးနှစ်ရှုထောင်ခင်းကျင်းမှုများကိုပြန်ပို့သည်။ ဥပမာအားဖြင့်:

 $array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$chunks = array_chunk($array, 3);
print_r($chunks);

output ရလဒ် -

 Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )
    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )
    [2] => Array
        (
            [0] => 7
            [1] => 8
            [2] => 9
        )
)

ဤဥပမာတွင် array_chunk သည် မူရင်းခင်းကျင်းမှုကိုအရွယ်အစား (3) ခုကိုအရွယ်အစားသုံးခုသို့ကွဲပြားစေသည်။

2 ။ array_reduce function ကို၏အခြေခံအသုံးပြုမှု

array_reduce function သည်ခင်းကျင်းမှုတစ်ခုအနေဖြင့် array တစ်ခုနှင့် callback function ကိုလက်ခံပြီး array ရှိ element များအပေါ် "လျှော့ချ" စစ်ဆင်ရေးကိုလုပ်ဆောင်သည်။ ၎င်းသည် Array ၏ပထမဆုံး element ဖြင့်စတင်သည်နှင့်ယခင်ဒြပ်စင်၏ရလဒ်ကို callback function တစ်ခုသို့ရရှိသော 4 င်းတို့နှင့်အတူလက်ရှိ element ကိုအတူတကွဖြတ်သန်းသွားသည်။ ဥပမာအားဖြင့်:

 $array = [1, 2, 3, 4, 5];
$sum = array_reduce($array, function($carry, $item) {
    return $carry + $item;
});
echo $sum;  // ထုတ်လုပ်ခြင်း 15

ဤဥပမာတွင် array_reduce သည် elements များကိုခင်းကျင်းသည့်နေရာတွင်စုဆောင်းပြီးနောက်ဆုံးတွင်ခင်းကျင်းမှုပေါင်းလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။

3 ။ array_chunk နှင့် array_reduce ကိုအုပ်စုဖွဲ့ခြင်းနှင့်စုစုပေါင်းအချက်အလက်များကိုစုစည်းပါ

ယခုတွင် array_chunk နှင့် array_reduce_reduce ၏အခြေခံအသုံးပြုမှုကိုကျွန်ုပ်တို့သိသောကြောင့်၎င်းတို့အားစုစည်းမှုနှင့်စုစည်းခြင်းကိုအကောင်အထည်ဖော်ရန်၎င်းတို့ကိုပေါင်းစပ်ရန်ကြိုးစားနိုင်သည်။

ကျွန်ုပ်တို့တွင်အသုံးပြုသူအမိန့်ဒေတာများပါ 0 င်သည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည် array_chunk ကို အုပ်စုအားအသုံးပြုသူ ID မှပထမဆုံး အသုံးပြု. array_reduce ကို စုစည်းရန်နှင့်အချက်အလက်အစုတစ်ခုစီကိုတွက်ချက်ရန်နှင့်တွက်ချက်ရန်အသုံးပြုသည်။

 // အောက်ပါအမိန့်ဒေတာရရှိနိုင်ပါသည်ဟုယူဆ,တစ်ခုချင်းစီကိုမှာယူမှုတစ်ခုပါရှိသည် user_id နှင့်ပမာဏ amount
$orders = [
    ['user_id' => 1, 'amount' => 100],
    ['user_id' => 2, 'amount' => 200],
    ['user_id' => 1, 'amount' => 150],
    ['user_id' => 3, 'amount' => 300],
    ['user_id' => 2, 'amount' => 50],
    ['user_id' => 1, 'amount' => 200],
];

// အသုံးပြု array_chunk အရ user_id အုပ်စုအမိန့်
$chunks = array_chunk($orders, 2);  // အုပ်စုတစ်စုလျှင်အများဆုံးအမိန့်အများဆုံးရှိကြောင်းယူဆ

// အသုံးပြု array_reduce အုပ်စုတစ်စုလျှင်စုစုပေါင်းအမှာစာပမာဏ
$result = array_map(function($chunk) {
    return array_reduce($chunk, function($carry, $item) {
        $carry['user_id'] = $item['user_id'];
        $carry['total_amount'] += $item['amount'];
        return $carry;
    }, ['total_amount' => 0]);
}, $chunks);

// ထုတ်လုပ်ခြင်း结果
print_r($result);

ရလဒ်ရလဒ် -

 Array
(
    [0] => Array
        (
            [user_id] => 1
            [total_amount] => 250
        )
    [1] => Array
        (
            [user_id] => 2
            [total_amount] => 250
        )
    [2] => Array
        (
            [user_id] => 3
            [total_amount] => 300
        )
)

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် ARRAY_CHUNK ကို အသုံးပြု. အုပ်စုတစ်စုလျှင်အမှာစာအချက်အလက်များကိုပထမ ဦး ဆုံးအုပ်စုဖွဲ့သည်။ အသုံးပြုသူတစ် ဦး ချင်းစီအတွက်စုစုပေါင်းအမှာစာပမာဏကိုတွက်ချက်ရန် array_reduce ကို အသုံးပြု. အမိန့်အုပ်စုတစ်ခုစီကို စုစည်း. စုစည်းပြီးဖြစ်သည်။

4 ။ ပြီးပြည့်စုံသောဥပမာ

အထက်ပါစစ်ဆင်ရေးကိုအပြည့်အ 0 လုပ်ဆောင်မှုထဲသို့ကျွန်ုပ်တို့ oncapsatfulate လျှင် Code သည်အောက်ပါအတိုင်းဖြစ်သည် -

 function groupAndAggregateOrders($orders) {
    // အရ用户 ID အုပ်စုဖွဲ့ခြင်း
    $chunks = array_chunk($orders, 2);  // အုပ်စုတစ်စုလျှင်အများဆုံးအမိန့်အများဆုံးရှိကြောင်းယူဆ

    // 对每个အုပ်စုဖွဲ့ခြင်း计算用户的总订单金额
    return array_map(function($chunk) {
        return array_reduce($chunk, function($carry, $item) {
            $carry['user_id'] = $item['user_id'];
            $carry['total_amount'] += $item['amount'];
            return $carry;
        }, ['total_amount' => 0]);
    }, $chunks);
}

// ဒေတာကိုစမ်းသပ်
$orders = [
    ['user_id' => 1, 'amount' => 100],
    ['user_id' => 2, 'amount' => 200],
    ['user_id' => 1, 'amount' => 150],
    ['user_id' => 3, 'amount' => 300],
    ['user_id' => 2, 'amount' => 50],
    ['user_id' => 1, 'amount' => 200],
];

// ခေါ်ဆိုမှုကိုခေါ်ဆိုမှု
$result = groupAndAggregateOrders($orders);

// ထုတ်လုပ်ခြင်း结果
print_r($result);

5 ။ အကျဉ်းချုပ်

Array_chunk နှင့် array_reduce_reduce ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် arrays များကိုအလွယ်တကူ စုစည်း. စုစည်းနိုင်သည်။ Array_chunk သည် ဒေ တာများကိုအုပ်စုများခွဲရန်ခွင့်ပြုသည်။ ဤနှစ်ခုပေါင်းစပ်မှုသည်ကုဒ်၏ဖတ်နိုင်မှုနှင့်ရှုပ်ထွေးသောအချက်အလက်များကိုလုပ်ဆောင်နိုင်စွမ်းကိုများစွာတိုးတက်စေနိုင်သည်။