PHP တွင် Array_chunk နှင့် array_reduce သည်အလွန်အားကောင်းသည့်ခင်းကျင်းသောစစ်ဆင်ရေးလုပ်ဆောင်ချက်များဖြစ်သည်။ Array_chunk သည် ကြီးမားသောခင်းကျင်းမှုကိုသေးငယ်သောအရာများစွာကိုဝေမျှနိုင်သည် ။ အချို့ဖြစ်ရပ်များတွင်ကျွန်ုပ်တို့သည်စည်းမျဉ်းများကိုအုပ်စုဖွဲ့ရန်နှင့်စုစည်းပြီးနောက်စုစည်းရေးစစ်ဆင်ရေးအချို့ပြုလုပ်လိုသည်။ ဤဆောင်းပါးသည်ဤရည်မှန်းချက်အောင်မြင်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုရှင်းပြပါမည်။
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) ခုကိုအရွယ်အစားသုံးခုသို့ကွဲပြားစေသည်။
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 များကိုခင်းကျင်းသည့်နေရာတွင်စုဆောင်းပြီးနောက်ဆုံးတွင်ခင်းကျင်းမှုပေါင်းလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။
ယခုတွင် 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 ကို အသုံးပြု. အမိန့်အုပ်စုတစ်ခုစီကို စုစည်း. စုစည်းပြီးဖြစ်သည်။
အထက်ပါစစ်ဆင်ရေးကိုအပြည့်အ 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);
Array_chunk နှင့် array_reduce_reduce ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် arrays များကိုအလွယ်တကူ စုစည်း. စုစည်းနိုင်သည်။ Array_chunk သည် ဒေ တာများကိုအုပ်စုများခွဲရန်ခွင့်ပြုသည်။ ဤနှစ်ခုပေါင်းစပ်မှုသည်ကုဒ်၏ဖတ်နိုင်မှုနှင့်ရှုပ်ထွေးသောအချက်အလက်များကိုလုပ်ဆောင်နိုင်စွမ်းကိုများစွာတိုးတက်စေနိုင်သည်။