PHP တွင် array_chunk () function ကို array ကိုသေးငယ်တဲ့သေးငယ်တဲ့ arrays သို့ခွဲရန်အသုံးပြုသည်။ Array_chunk () ကိုခေါ်သည့်အခါဒုတိယ parameter သည်သေးငယ်သော array တစ်ခုစီအတွက်ဒြပ်စင်အရေအတွက်ကိုဆုံးဖြတ်သည်။ ဒီဒုတိယ parray ရဲ့အရှည်အရဒီဒုတိယ parameter ကိုကျွန်တော်တို့ပြောင်းလဲချင်ရင်ငါတို့ဘာလုပ်သင့်သလဲ။
ဤဆောင်းပါးသည် array_chunk () array's's of array_chunk () ၏ဒုတိယ parameter ကိုမည်သို့ပြောင်းလဲအောင်လုပ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
array_chunk () ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_chunk(array $array, int $size, bool $preserve_keys = false): array
$ array : input array ။
$ အရွယ်အစား - split ခင်းကျင်းမှုတစ်ခုစီ၏အရွယ်အစား။
$ Presentation_Keys : မူရင်းခင်းကျင်းခြင်း၏သော့များကိုထိန်းသိမ်းရန်ဖြစ်စေ (ပုံမှန်အားဖြင့် မှားယွင်း သည်) ။
ဥပမာအားဖြင့်:
$array = [1, 2, 3, 4, 5, 6];
$chunked = array_chunk($array, 2);
print_r($chunked);
ထုတ်လုပ်မှု -
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 3
[1] => 4
)
[2] => Array
(
[0] => 5
[1] => 6
)
)
တခါတရံတွင်ကျွန်ုပ်တို့သည် array အရှည်အပေါ် အခြေခံ. subarray ၏အရွယ်အစားတစ်ခုစီ၏အရွယ်အစားကိုမှန်ကန်စွာဆုံးဖြတ်လိုသည်။ ဥပမာအားဖြင့်, Array ကပိုကြာလျှင် subarray တစ်ခုချင်းစီကိုဒြပ်စင်များများဆံ့စေလိုသည်။ အကယ်. ခင်းကျင်းမှုသည်သေးငယ်သောအရာတစ်ခုစီသည်နိမ့်ကျသောဒြပ်စင်များပါ 0 င်သည်။ ၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်ကျွန်ုပ်တို့အောင်မြင်နိုင်သည်။
function dynamicChunkSize($array) {
// array အရှည်ရယူပါ
$length = count($array);
// Array ၏အရှည်အရသိရသည် chunking အရွယ်အစားကိုသတ်မှတ်ပါ,အရှည်ထက်လျော့နည်းကြောင်းယူဆ 10 အချိန်ဌာနခွဲ 2 အပိုင်းအစ,ထက်သာ။ ကြီးမြတ်အရှည် 10 အချိန်ဌာနခွဲ 3 အပိုင်းအစ
if ($length < 10) {
$size = 2;
} else {
$size = ceil($length / 3); // 如果数组ထက်သာ။ ကြီးမြတ်အရှည် 10,၎င်းကိုသုံးပုံတစ်ပုံခွဲခြားထားသည်
}
return $size;
}
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$size = dynamicChunkSize($array);
$chunked = array_chunk($array, $size);
print_r($chunked);
အထက်ပါဥပမာတွင်ကျွန်ုပ်တို့သည် array အရှည်အပေါ် အခြေခံ. subarray ၏အရွယ်အစားကို အခြေခံ. dynamramice dynamicchunksize () function dynamicchunkize () ကိုသတ်မှတ်သည်။ ဥပမာအားဖြင့်, array အရှည်သည် 10 ထက်နည်းလျှင်, သေးငယ်တဲ့ array တစ်ခုစီ၏အရွယ်အစားကို 2 အထိသတ်မှတ်; အကယ်. Array အရှည်သည် 10 ထက်ကြီးပါကအသေးအဖွဲခင်းတစ်ခုစီ၏အရွယ်အစားကိုခင်းကျင်းမှု၏သုံးပုံတစ်ပုံအထိသတ်မှတ်ထားသည်။
array_chunk () ၏ဒုတိယ parameter ကို dynamically ကိုချိန်ညှိခြင်း () တိကျတဲ့အခြေအနေများအတွက်အလွန်သင့်လျော်သည်။ ဥပမာအားဖြင့်, paging အပေါ်အချက်အလက်များကိုပြသသည့်အခါဒေတာစုစုပေါင်းပမာဏအပေါ် အခြေခံ. စာမျက်နှာတစ်ခုချင်းစီတွင်ဖော်ပြထားသောဒေတာအရေအတွက်ကိုကျွန်ုပ်တို့ပိုမိုတွက်ချက်နိုင်သည်။ ဤတွင် Pagination ၏ဥပမာတစ်ခုဖြစ်သည်။
function getPaginationChunks($array, $totalItems, $itemsPerPage) {
$totalPages = ceil($totalItems / $itemsPerPage);
$chunks = [];
for ($i = 0; $i < $totalPages; $i++) {
$start = $i * $itemsPerPage;
$chunks[] = array_slice($array, $start, $itemsPerPage);
}
return $chunks;
}
$array = range(1, 100); // ဒီတစ်ခုထည့်သွင်းသည်ဟုယူဆပါ100ဒြပ်စင်၏ခင်းကျင်း
$totalItems = count($array);
$itemsPerPage = 10;
$pagination = getPaginationChunks($array, $totalItems, $itemsPerPage);
print_r($pagination);
ဒီဥပမာမှာကျွန်တော်တို့ဟာ array_slice () ကို ပုံဆောင် function ကိုပုံဖော်ဖို့သုံးတယ်။ ကျွန်ုပ်တို့သည်အချက်အလက်စုစုပေါင်းပမာဏနှင့်စာမျက်နှာတစ်ခုချင်းစီ၏ဒေတာအစုအရေအတွက်ကို အခြေခံ. ခင်းကျင်းမှုကို အခြေခံ. ခင်းကျင်းခြင်းနှင့်စာမျက်နှာတစ်ခုစီ၏အချက်အလက်များကိုပြန်ပို့ပါ။
array_chunk () ၏ဒုတိယ parameter ကို dynametic အရ segrunk segmentation ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်သော segmentation ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိရန်ကူညီနိုင်သည်။ ခင်းကျင်းမှု၏အရှည်ကိုတွက်ချက်ခြင်းဖြင့် subarray အရွယ်အစားကိုပြောင်းလဲခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောလိုအပ်ချက်များကိုအလွယ်တကူဖြည့်ဆည်းပေးနိုင်သည်။