လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_chunk ကိုဘယ်လိုသုံးရမလဲနှင့်အတုံးများတွင်ကြီးမားသောဒေတာများကိုပြုပြင်သည့်အခါစွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုရှောင်ရှားရန်

array_chunk ကိုဘယ်လိုသုံးရမလဲနှင့်အတုံးများတွင်ကြီးမားသောဒေတာများကိုပြုပြင်သည့်အခါစွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုရှောင်ရှားရန်

M66 2025-04-26

ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းအချက်အလက်အမြောက်အများကိုများပြားစွာလုပ်ဆောင်သောအခါကြီးမားသောခင်းကျင်းမှုများစွာကိုဝေငှရန်ခဲယဉ်းသည်။ PHP သည်အလွန်အသုံးဝင်သော function array_chunk () ကိုထောက်ပံ့ပေးသည်။ ဤလုပ်ဆောင်မှုသည် Pagination, Batch Processing စသည်တို့အတွက်သင့်လျော်သောအမျိုးမျိုးသောခင်းကျင်းမှုအမျိုးမျိုးကိုခွဲထားနိုင်သည်။ array_chunk () သည် အလွန်အဆင်ပြေသည်။ ဤဆောင်းပါးသည် array_chunk () စွမ်းဆောင်ရည်ပြ problems နာများကိုရှောင်ရှားရန်နည်းလမ်းများကိုထိထိရောက်ရောက်ကြည့်ရှုနိုင်ကြောင်းမိတ်ဆက်ပေးလိမ့်မည်။

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

array_chunk () function ကို array မျိုးစုံအမျိုးမျိုးသော arrays များသို့ခွဲထားပြီးနှစ်ခုရှုထောင့်ခင်းကျင်းမှုသေးငယ်သည့်နှစ်ဖက်ခင်းကျင်းမှုကိုပြန်လည်ပေးပို့ရန်အသုံးပြုသည်။

အခြေခံ syntax:

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $ array : ခွဲရန်လိုအပ်သည့်ခင်းကျင်း။

  • $ အရွယ်အစား - သေးငယ်တဲ့ array တစ်ခုစီ၏အရွယ်အစား။

  • $ Present_Keys : အကယ်. မှန်ကန် ရန်သတ်မှတ်ထားပါကမူရင်းခင်းကျင်းမှု၏သော့အမည်ကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်။ အကယ်. မှားယွင်းသော် အကယ်. လျှို့ဝှက်ချက်ကိုပြန်လည်ရည်ညွှန်းလိမ့်မည်။

နမူနာကုဒ်:

 <?php
$array = range(1, 20);  // တစ် ဦး ပါဝင်သော generate 1 ရောက်လာ 20 ၏ခင်းကျင်း
$chunked = array_chunk($array, 5);

print_r($chunked);
?>

ရလဒ်ရလဒ် -

 Array
(
    [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
    [1] => Array ( [0] => 6 [1] => 7 [2] => 8 [3] => 9 [4] => 10 )
    [2] => Array ( [0] => 11 [1] => 12 [2] => 13 [3] => 14 [4] => 15 )
    [3] => Array ( [0] => 16 [1] => 17 [2] => 18 [3] => 19 [4] => 20 )
)

ဤနည်းလမ်းသည်သေးငယ်သော array များအတွက်အလွန်ထိရောက်သော်လည်း, အကယ်. သင်သည်ကြီးမားသောခင်းကျင်းမှုများစွာကိုကိုင်တွယ်ဖြေရှင်းပါကစွမ်းဆောင်ရည်ပြ problems နာများသည်တဖြည်းဖြည်းပေါ်ထွက်လာလိမ့်မည်။

2 ။ ကြီးမားတဲ့ arrays နှင့်အတူကိုင်တွယ်သောအခါစွမ်းဆောင်ရည်ပြ issues နာများ

Array သည်အလွန်ကြီးမားသည်, array_chunk () ကို တိုက်ရိုက် အသုံးပြု. တိုက်ရိုက်မှတ်ဉာဏ်အသုံးပြုမှုကိုဖြစ်ပေါ်စေနိုင်သည်။ အဓိကအကြောင်းပြချက်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  • Memory Footprint : array_chunk () သည် Memory အသုံးပြုမှုသိသိသာသာတိုးလာစေသည့် array_chunk အသစ် () အသစ်အမျိုးမျိုးကိုဖန်တီးသည်။

  • မလိုအပ်သောသော့ချက်အမည်ပြန်လည်တည်ဆောက်ရေး - အကယ်. $ Presentify_Keys Parameter သည် မှားယွင်းသော် , array တစ်ခုစီသည်သော့ကိုထပ်ခါထပ်ခါထည့်သွင်းပါလိမ့်မည်။

ကြီးမားတဲ့ arrays ကြီးမားတဲ့အတွက်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းသည်အထူးသဖြင့်အကောင်းမြင်ခြင်းမရှိဘဲသိသိသာသာသိသာထင်ရှားစေပြီးပရိုဂရမ်ပျက်သွားခြင်းသို့မဟုတ်နှေးကွေးစွာတုံ့ပြန်မှုဖြစ်စေနိုင်သည်။

3 ။ စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုရှောင်ရှားရန် optimization နည်းလမ်း

ကြီးမားတဲ့ array တွေနဲ့ဆက်ဆံတဲ့အခါစွမ်းဆောင်ရည်မြှင့်တင်မှုတွေကိုရှောင်ရှားနိုင်ဖို့အတွက်အောက်ပါ optimization အစီအမံတွေကိုကျွန်တော်တို့ယူနိုင်တယ်။

3.1 array_chunk အစား array_slice ( ) ကို သုံးပါ။

Array_slice () function သည် array တစ်ခုလုံးကိုကူးယူခြင်းမရှိဘဲ array မှ subarray များကိုထုတ်ယူနိုင်သည်။ array_chunk () ,), array_slice () နှင့်နှိုင်းယှဉ်ပါကခင်းကျင်းရေးထားသည့်အချက်အလက်များကိုလိုအပ်သည့်အချက်အလက်များကိုလိုအပ်သလိုလုပ်ဆောင်ရန်လိုအပ်သည့်အချက်အလက်များကိုလိုအပ်သလိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။

Optimization ဥပမာ:

 <?php
$array = range(1, 1000000);  // ငါတို့မှာဒြပ်စင်အတော်များများအများကြီးရှိတယ်ဆိုပါစို့
$chunk_size = 10000;  // တစ်ခုချင်းစီကိုအပြောင်းအလဲနဲ့ 10000 ဒြပ်

// အသုံးပြု array_slice ကြီးမားသော arrays မှတဆင့်ကြားမှာ
for ($i = 0; $i < count($array); $i += $chunk_size) {
    $chunk = array_slice($array, $i, $chunk_size);
    // ကိုင်တွယ်ဖြေရှင်းသည် $chunk အချက်များ,ဥပမာအားဖြင့်ပေးပို့ပါ HTTP တောင်းဆိုမှုစသည်တို့ကို
    // တောင်းဆိုမှုကိုယူဆ URL အတွက် https://m66.net/api/data
    file_get_contents("https://m66.net/api/data?data=" . urlencode(json_encode($chunk)));
}
?>

array_slice () ကိုသုံးသောအခါတွင်ကြီးမားသောအရွယ်အစားကို ဖြတ်. သတ်မှတ်ထားသောအရွယ်အစား၏အချက်အလက်များသာလျှင်မှတ်ဥာဏ်အသုံးပြုမှုကိုထိထိရောက်ရောက်လျှော့ချနိုင်ပြီးအချက်အလက်များလွန်းခြင်းကြောင့်စွမ်းဆောင်ရည်ပြ problems နာများကိုထိရောက်စွာလျှော့ချနိုင်သည်။

3.2 မလိုအပ်သောသော့ချက်အမည်ပြန်လည်တည်ဆောက်ခြင်းကိုလျှော့ချပါ

အစောပိုင်းတွင်ဖော်ပြခဲ့သည့်အတိုင်း array_chunk ()Pray'Nes Parameters Parameter သည်မှတ်ဉာဏ်အသုံးပြုမှုကိုအကျိုးသက်ရောက်လိမ့်မည်။ ကျွန်ုပ်တို့သည်သော့ချက်အမည်ကိုထိန်းသိမ်းရန်မလိုအပ်ပါကမှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချရန်ဤ parameter ကို မှားယွင်းစွာ သတ်မှတ်ခြင်းသည် ပို. ကောင်းသည်။

 <?php
$array = range(1, 1000000);
$chunked = array_chunk($array, 10000, false);  // မူရင်းသော့ချက်အမည်မသိမ်းဆည်းပါ
?>

ထိုသို့ပြုလုပ်ခြင်းသည် array တစ်ခုစီ၏အဓိကအကြောင်းရင်းကိုပြန်လည်အမှတ်အသားပြုရန်, မလိုအပ်သောမှတ်ဉာဏ် overhead ကိုလျှော့ချရန်ဖြစ်သည်။

3.3 အသုတ်အပြောင်းအလဲနဲ့နှင့် segmented အပြောင်းအလဲနဲ့

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

အသုတ်အပြောင်းအလဲနဲ့ဥပမာ -

 <?php
$array = range(1, 1000000);  // ကြီးမားသောခင်းကျင်း
$chunk_size = 50000;  // 每批次ကိုင်တွယ်ဖြေရှင်းသည် 50000 个အချက်များ

foreach (array_chunk($array, $chunk_size) as $chunk) {
    // 逐批ကိုင်တွယ်ဖြေရှင်းသည်အချက်များ,ဥပမာအားဖြင့်, အစပျိုး API မေးမြန်း
    file_get_contents("https://m66.net/api/data?data=" . urlencode(json_encode($chunk)));
}
?>

ဤနည်းလမ်းသည်အလွန်အကျွံဒေတာများကိုတစ်ချိန်တည်းတွင်မှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်ခြင်းကိုကာကွယ်နိုင်ပြီးအစီအစဉ်တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။

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

array_chunk () ကို သုံးသောအခါစွမ်းဆောင်ရည်မြှင့်တင်ခြင်းကိုရှောင်ရှားရန်ကြီးမားသောခင်းကျင်းမှုအမြောက်အများကိုအထူးဂရုပြုသင့်သည်။ စွမ်းဆောင်ရည်ကိုအောက်ပါနည်းလမ်းများဖြင့်အကောင်းဆုံးနည်းလမ်းများကိုအကောင်းဆုံးပြုလုပ်နိုင်သည်။

  • 0 ယ်လိုအားအပေါ်ခင်းကျင်းအစိတ်အပိုင်းများကိုလုပ်ဆောင်ရန် Array_SLICE () ကို သုံးပါ။

  • မလိုအပ်သောမှတ်ဉာဏ် overhead ကိုရှောင်ရှားရန် Present_Keys Parameter ကိုကျိုးကြောင်းဆီလျော်စွာထားပါ။

  • အသုတ်တွင်လုပ်ဆောင်သောအချက်အလက်များသည်မှတ်ဥာဏ်အသုံးပြုမှုကိုလျော့နည်းစေသည်။

ဤ optimization method များသည်ကြီးမားသောခင်းကျင်းမှုများကိုပိုမိုထိရောက်စွာလုပ်ဆောင်နိုင်ပြီးစွမ်းဆောင်ရည်ပြ problems နာများကိုမြင့်မားသောဝန်ပြ problems နာများကိုရှောင်ရှားနိုင်စေသည်။