လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_chunk ကိုအသုံးပြုနည်းနှင့် segment ကို segment အတွက်ကြီးမားသောဒေတာနှင့်ဖြစ်စဉ်ကို allynchronously

array_chunk ကိုအသုံးပြုနည်းနှင့် segment ကို segment အတွက်ကြီးမားသောဒေတာနှင့်ဖြစ်စဉ်ကို allynchronously

M66 2025-04-27

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

1 ။ Array_chunk ဆိုတာဘာလဲ။

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

function ရှေ့ပြေးပုံစံ:

 array_chunk(array $array, int $size, bool $preserve_keys = false): array
  • $ array : chunked ခံရဖို့ Array ။

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

  • $ Present_Keys : မူရင်းခင်း ကျင်း မှု၏သော့အမည်ကိုထိန်းသိမ်းရန်ဖြစ်စေ,

2 ။ array_chunk ကိုအသုံးပြုပြီးဥပမာ

ကျွန်ုပ်တို့တွင်ဒေတာ 1000 တွင်ခင်းကျင်းမှုတစ်ခုရှိပြီး၎င်းကိုသေးငယ်သောအရာတစ်ခုစီပါ 0 င်သောအသေးအဖွဲ 10 ခုစီခွဲရန် array_chunk ကို အသုံးပြုသည်ဆိုပါစို့။

 <?php
$data = range(1, 1000); // ဖြစ်ပါှးစေ1ရောက်လာ1000၏ခင်းကျင်း
$chunkedData = array_chunk($data, 100);

print_r($chunkedData);
?>

ရလဒ်ရလဒ် -

 Array
(
    [0] => Array ( [0] => 1 [1] => 2 ... [99] => 100 )
    [1] => Array ( [0] => 101 [1] => 102 ... [99] => 200 )
    ...
)

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသော array ကို ဒေါ်လာဒေတာများကို သေးငယ်သောပြ arrays များအဖြစ်ခွဲဝေသည်။ တစ်ခုချင်းစီတွင်ခင်းကျင်းမှုတစ်ခုစီတွင်ဒြပ်စင် 100 ရှိသည်။

3 ။ စွမ်းဆောင်ရည်တိုးတက်စေရန် esinchronous စစ်ဆင်ရေးနှင့်အတူပေါင်းစပ်

Array_Chunk ကိုအသုံးပြုပြီးနောက်ကြီးမားသောအချက်အလက်များကိုပိတ်ဆို့ရန်ကျွန်ုပ်တို့သည်စွမ်းဆောင်ရည်တိုးတက်စေရန် Assynchronous စစ်ဆင်ရေးများကိုထပ်မံပေါင်းစပ်နိုင်သည်။ ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးများသည်အပြိုင်ဖြင့်လုပ်ဆောင်မှုများကိုပြုလုပ်ရန်အလုပ်များစွာကိုပြုလုပ်နိုင်ပြီးပိတ်ဆို့ခြင်းကိုရှောင်ရှားနိုင်သည်။ ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးများကို PHP တွင်အသုံးချနိုင်ပြီးအသုံးအများဆုံးနည်းလမ်းမှာ curl_multi_exec သို့မဟုတ် PHP async extension ကိုသုံးရန်ဖြစ်သည်။

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

ဥပမာ - ဒေတာကို allynchronously လုပ်ငန်းစဉ်ဆက်လုပ်ရန် curl_multi_exec ကို သုံးပါ

 <?php
$data = range(1, 1000);  // ကြီးမားသောဒေတာကိုတုပ
$chunkedData = array_chunk($data, 100);  // အပြောင်းအလဲနဲ့ပိတ်ပင်တားဆီးမှု

// ဖြစ်ပေါ်လာခြင်း cURL multi handle
$mh = curl_multi_init();

// တစ်ခုချင်းစီကိုတောင်းဆိုမှုကိုကယ်တင်ရန်အသုံးပြုလက်ကိုင်
$curlHandles = [];

// ဒေတာတစ်ခုချင်းစီကို ဖြတ်. ကြားနာ,asnchronously တောင်းဆိုမှုကိုအစပြု
foreach ($chunkedData as $index => $chunk) {
    $url = "http://m66.net/api/process_data";  // မှတ်ယူခြင်းAPIစကားပေြာဟော
    $postData = json_encode(['data' => $chunk]);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // 添加ရောက်လာ multi handle အလယ်ပိုင်း
    curl_multi_add_handle($mh, $ch);
    $curlHandles[$index] = $ch;
}

// ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများပြုလုပ်ပါ
do {
    $multiExec = curl_multi_exec($mh, $running);
    if ($running) {
        curl_multi_select($mh);
    }
} while ($running);

// တုန့်ပြန်အကြောင်းအရာကိုရယူပါ
foreach ($curlHandles as $index => $ch) {
    $response = curl_multi_getcontent($ch);
    echo "Response from chunk {$index}: " . $response . "\n";

    // တစ်ခုချင်းစီကိုတောင်းဆိုမှုကိုလက်ကိုင်ပိတ်ပါ
    curl_multi_remove_handle($mh, $ch);
}

// ရုပ်သိမ်းခြင်း multi handle
curl_multi_close($mh);
?>

ဤဥပမာတွင် curl_multi_exec ကို အသုံးပြု. Curl_Multi_exec ကိုအသုံးပြုသည်။ ဒေတာပိတ်ပင်တားဆီးမှုတစ်ခုချင်းစီသည် curl မှတစ်ဆင့်တောင်းဆိုမှုကိုစတင်ရန်နှင့်၎င်းကိုအပြိုင်တွင်ပြုလုပ်သည်။

4 ။ ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေး၏အားသာချက်များ

  1. စောင့်ဆိုင်းချိန်ကိုလျှော့ချပါ ။ asynchronous စစ်ဆင်ရေးများသည်တစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီးတစ်ချိန်တည်းတွင်တစ်ချိန်တည်းတွင်စောင့်ဆိုင်းနေသည့်အချိန်ကိုရှောင်ရှားနိုင်သည်။

  2. စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက် - I / O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-OUTS)

  3. အရင်းအမြစ်အသုံးပြုမှုကိုအကောင်းဆုံးဖြစ်အောင်လုပ်ပါ ။ CPU နှင့်ကွန်ယက် bandwidth ကိုအသုံးချခြင်းကိုပိုမိုကောင်းမွန်စေရန် Memory Outflow ပြ issues နာများကိုရှောင်ကြဉ်ပါ။

5 ။ မှတ်စုဖို့အရာ

  1. အမှားကိုင်တွယ်ခြင်း - ပြတ်ပြတ်သားသားလုပ်ဆောင်မှုများတွင်အမှားအယွင်းများကိုအထူးအရေးကြီးသည်။ တောင်းဆိုမှုတစ်ခုစီ၏အောင်မြင်မှုနှင့်ကျရှုံးမှုကိုအချိန်မီပြုလုပ်နိုင်ရန်သေချာစေရန်လိုအပ်သည်။

  2. အရင်းအမြစ်ကန့်သတ်ချက်များ - ပြတ်တောင်းပြတ်တောင်းစစ်ဆင်ရေးများသည်စွမ်းဆောင်ရည်ကိုတိုးတက်ကောင်းမွန်စေသော်လည်းအကန့်အသတ်မရှိ။ တောင်းဆိုမှုများအရေအတွက်သည်ဆာဗာ၏စွမ်းဆောင်ရည်ထက်မကျော်လွန်ကြောင်းသေချာပါစေ။

  3. ဒေတာရှေ့နောက်ညီညွတ်မှု - ပြတ်တောင်းပြတ်တောင်းပြုပြင်ရေးတွင်အချက်အလက်များအပေးအယူတစ်ခုစီ၏အပြောင်းအလဲအတွက်အမိန့်သည်နောက်ဆုံးရလဒ်ကိုမထိခိုက်ပါ။

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

Array_chunk function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသောဒေတာများကို chunk လုပ်ပြီးမှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချနိုင်သည်။ asynchronous operations (ဥပမာ curl_multi_exec ) နှင့်ပေါင်းစပ်ပြီး (ဥပမာ curl_multi_exec) ကိုကျွန်ုပ်တို့တစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီးအစီအစဉ်၏စွမ်းဆောင်ရည်ကိုပိုမိုတိုးတက်စေနိုင်သည်။ အချက်အလက်အမြောက်အများကိုပြုပြင်သောအခါဤနည်းလမ်းသည်အထူးသဖြင့်ကွန်ယက်တောင်းဆိုမှုများသို့မဟုတ် I / O / I / O စစ်ဆင်ရေးများလိုအပ်သည့်နေရာများတွင်အသုံးပြုသူ၏အတွေ့အကြုံကိုသိသိသာသာတိုးတက်စေနိုင်သည်။