PHP တွင် processing arrays များသည်အလွန်အသုံးများသောအလုပ်ဖြစ်သည်။ array_slice function သည် array တွင်သတ်သတ်မှတ်မှတ်အပိုင်းအစများကိုကြားဖြတ်ရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် Pagination Display, Data Segmentation သို့မဟုတ်ခင်းကျင်းမှု၏အစိတ်အပိုင်းတစ်ခုဖြစ်သည်ဖြစ်စေ Array_Slice သည် အလွယ်တကူအရည်အချင်းရှိနိုင်သည်။ ဤဆောင်းပါးသည် array_slice အသုံးပြုမှုဆိုင်ရာအကြံပြုချက်များ, အကောင်းဆုံးအလေ့အကျင့်များနှင့်စွမ်းဆောင်ရည်အကောင်းဆုံးအကြံပြုချက်များကိုအာရုံစိုက်ပါလိမ့်မည်။
array_slice function ကိုအောက်ပါအတိုင်းသတ်မှတ်ထားသည်။
array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)
$ array : ကြားဖြတ်ခံရဖို့ Array
$ Offset : Start Position (အနှုတ်လက်ခဏာနံပါတ်များကိုထောကျပံ့,
$ အရှည် - ကြားဖြတ်သည့်အရှည် (optional)
$ Presentify_keys : မူရင်းခင်းကျင်းမှု၏သော့အမည်ကိုထိန်းသိမ်းရန်ဖြစ်စေ,
ဥပမာ -
<?php
$arr = [1, 2, 3, 4, 5];
$slice = array_slice($arr, 1, 3);
print_r($slice);
?>
ထုတ်လုပ်မှု -
Array
(
[0] => 2
[1] => 3
[2] => 4
)
SESPCRIPS 1 မှစသောဒြပ်စင် 3 ခုရှိသည်။
$ offset သည် အပြုသဘောဆောင်သောနံပါတ်ဖြစ်သည့်အခါရာထူးကိုခင်းကျင်းမှု၏အစမှတွက်ချက်သည်။
$ Offset သည် အနှုတ်လက်ခဏာကိုအနှုတ်လက်ခဏာဖြစ်သည့်အခါခင်းကျင်းမှု၏အဆုံးမှရှေ့သို့တွက်ချက်ပါ။
$ အရှည်ကို ချန်လှပ်ထားလျှင်သို့မဟုတ် တရားမဝင် လျှင်၎င်းသည်ပုံမှန်အားဖြင့်ခင်းကျင်းမှု၏အဆုံးကိုကြားဖြတ်နေသည်။
ဒီ parameters တွေကိုနားလည်အောင်သေချာအောင်လုပ်ပြီးအနုတ်လက်ခဏာညွှန်းကိန်းတွေကြောင့်ဒေတာကြားဖြတ်အမှားတွေကိုရှောင်ကြဉ်ပါ။
ပုံမှန်အားဖြင့် array_slice သည် indexing indexing အတွက်များသောအားဖြင့် ok ဖြစ်ပါသည်, သို့သော် arrays indexing array များအတွက် ok ဖြစ်ပါသည် ။
<?php
$assoc = ['a' => 1, 'b' => 2, 'c' => 3];
$slice = array_slice($assoc, 1, null, true);
print_r($slice);
?>
ထုတ်လုပ်မှု -
Array
(
[b] => 2
[c] => 3
)
Paging အတွက်ဘုံလိုအပ်ချက်မှာစာမျက်နှာနံပါတ်အားဖြင့်ခင်းကျင်းမှုကိုလက်ခံရန်နှင့် array နယ်နိမိတ်ထက်ကျော်လွန်ရန်တားဆီးရန် $ offset နှင့် $ အရှည်ကို တွက်ချက်ရန်ဖြစ်သည် ။
<?php
$page = 2;
$pageSize = 3;
$offset = ($page - 1) * $pageSize;
$data = range(1, 10);
$pageData = array_slice($data, $offset, $pageSize);
print_r($pageData);
?>
ထုတ်လုပ်မှု -
Array
(
[0] => 4
[1] => 5
[2] => 6
)
အကယ်. သင်သည် array_slicle များကို ကွင်းဆက်များသို့မဟုတ်မကြာခဏလုပ်ဆောင်မှုများတွင်အသုံးပြုပါကအထူးသဖြင့်အရေးယူမှုများပြုလုပ်ပါက၎င်းသည်စွမ်းဆောင်ရည်မြှင့်တင်မှုများဖြစ်ပေါ်စေနိုင်သည်။ ဖုန်းခေါ်ဆိုမှုအရေအတွက်ကိုလျှော့ချရန်အစမှတ်နှင့်အရှည်ကိုတစ်ကြိမ်တွက်ချက်ရန်ကြိုးစားပါ။
ဒေတာ volume သည်အလွန်ကြီးမားပါက Memory စားသုံးမှုကိုလျှော့ချရန်လိုအပ်သော element များကိုတဖြည်းဖြည်းထုတ်လုပ်ရန်မီးစက် ( အထွက်နှုန်း ) ကိုအသုံးပြုပါ။
<?php
function getSlice($array, $offset, $length) {
$count = 0;
foreach ($array as $key => $value) {
if ($count >= $offset && $count < $offset + $length) {
yield $key => $value;
}
$count++;
if ($count >= $offset + $length) break;
}
}
$arr = range(1, 1000000);
$slice = iterator_to_array(getSlice($arr, 1000, 10));
print_r($slice);
?>
၎င်းသည်လိုအပ်သောအစိတ်အပိုင်းများကိုသာထုတ်ပေးသည်။ စွမ်းဆောင်ရည်နှင့်မှတ်ဉာဏ်ဖော်ရွေမှုကိုဖော်ထုတ်စေသည်။
တူညီသောကြီးမားသောခင်းကျင်းမှုမှတူညီသောအပိုင်းအစကိုသင်မကြာခဏကြားဖြတ်လျှင်, ရလဒ်များကို cache ကိုစဉ်းစားပါ။ ထပ်ခါတလဲလဲတွက်ချက်မှုကိုရှောင်ကြဉ်ပါ။
တခါတရံတွင်ကျွန်ုပ်တို့သည်ကုဒ်များတွင် URL များကိုလည်ပတ်သည်။ အကယ်. ကျွန်ုပ်တို့သည် Domain Name အစားထိုးလိုအပ်ချက်များကိုကြုံတွေ့ရပါက၎င်းတို့အား string functions များနှင့်ပေါင်းစပ်နိုင်သည်။ ဥပမာတစ်ခုအနေဖြင့် -
<?php
$url = 'https://example.com/path/to/resource';
$newUrl = preg_replace('#^(https?://)[^/]+#', '$1gitbox.net', $url);
echo $newUrl;
?>
ထုတ်လုပ်မှု -
https://gitbox.net/path/to/resource
ဒီကုဒ်သည် URL ၏ domain name ကို GitBox.net နှင့်အတူမဆို domain name ကိုအစားထိုးသည်။