PHP တွင် array_slice function သည် array တစ်ခုမှခွဲဝေမှုတစ်ခုမှခင်းကျင်းရန်အလွန်လက်တွေ့ကျတဲ့ခင်းကျင်းမှုလုပ်ငန်းလည်ပတ်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏ parameters တွေကို၏ အပြုသဘော နှင့်အပျက်သဘော ဆောင်သော အဓိပ္ပာယ်ကိုနားလည်ခြင်းသည် arrays ၏ပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်မှုအတွက်အလွန်အရေးကြီးသည်ကိုနားလည်ခြင်းသည်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည်ဤ parameters နှစ်ခု၏အဓိပ္ပာယ်ကိုအသေးစိတ်လေ့လာပြီး၎င်းတို့အသုံးပြုမှုကိုကျွမ်းကျင်ရန်ကူညီရန်ဥပမာများကိုပေါင်းစပ်ပါလိမ့်မည်။
array_slice function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
array_slice(array $array, int $offset, int $length = null, bool $preserve_keys = false): array
$ array : ကြားဖြတ်ခံရဖို့ Array ။
$ offset : ကြားဖြတ်၏ start အနေအထား။
$ အရှည် : ကြားဖြတ်သည့်အရှည် (optional ကို) ။
$ Presentation_Keys : မူရင်းခင်းကျင်းမှု၏အဓိကအကြောင်းကိုထိန်းသိမ်းရန် (default ကိုပြန်လည်သတ်မှတ်ခြင်းမပြုပါ) ။
Offset Parameter သည်ကြားဖြတ်ခြင်းစသည့်အချက်၏အနေအထားကိုသတ်မှတ်သည်။
အပြုသဘောဆောင် offset : Array ရဲ့အစကနေစတင်သည် 0 ကိုဆိုလိုသည်။ 0 ကိုဆိုလိုသည်, 1 သည်ဒုတိယ element ကိုဆိုလိုသည်။
အနုတ်လက်ခဏာ အနေဖြင့် - Array ၏အဆုံးမှစတင်သည်, -1 သည်နောက်ဆုံး element ကိုကိုယ်စားပြုသည်, 2 သည်ဒုတိယနောက်ဆုံးဒြပ်စင်ကိုကိုယ်စားပြုသည်။
$array = ['a', 'b', 'c', 'd', 'e'];
// offset = 2,တတိယဒြပ်စင်ကနေစတင်
print_r(array_slice($array, 2));
// ရလဒ်: ['c', 'd', 'e']
// offset = -2,အဆိုပါ penultimate element မှစတင်
print_r(array_slice($array, -2));
// ရလဒ်: ['d', 'e']
အရှည် parameter သည်ကြားဖြတ်သောဒြပ်စင်အရေအတွက်ကိုသတ်မှတ်ပြီး၎င်းသည်အပြုသဘောနှင့်အပျက်သဘောဆောင်သောကိန်းများဖြစ်နိုင်သည်။
အပြုသဘောအရှည် - သတ်မှတ်ထားသောဒြပ်စင်အရေအတွက်ကိုကြားဖြတ်။
အနုတ်လက်ခဏာအရှည် - ခင်းကျင်းမှုမကုန်မီသတ်မှတ်ထားသော element အရေအတွက်ကိုကြားဖြတ်နေသည်ဟုကြားဖြတ်နေသည်။
အကယ်. အရှည် ကိုချန်လှပ်ထားပါက offset မှ Element အားလုံးသည် array ၏အဆုံးအထိအရာဝတ်ထုများကိုပုံမှန်အားဖြင့်ကြားဖြတ်နေကြသည်။
$array = ['a', 'b', 'c', 'd', 'e'];
// offset = 1, length = 3,ဒုတိယဒြပ်စင်ကနေအစမှတ်ကိုကြားဖြတ်3ဒြပ်
print_r(array_slice($array, 1, 3));
// ရလဒ်: ['b', 'c', 'd']
// offset = 1, length = -1,ကြားကြားမှ二ဒြပ်开始,နောက်ဆုံးဖယ်ထုတ်ပါ一ဒြပ်
print_r(array_slice($array, 1, -1));
// ရလဒ်: ['b', 'c', 'd']
offset သည်အ ပေါင်း အန္တိမိည်ဖြစ်သည့်အခါ အရှည်သည် array ၏အဆုံးတွင်ရှိသောဒြပ်စင်အရေအတွက်ကိုဆိုလိုသည် ။
offset သည်အနုတ်လက်ခဏာနှင့် အရှည်သည် အပြုသဘောဆောင် သည့် အခါ,
အကြွင်းမဲ့အာဏာတန်ဖိုးသည် ခင်း ကျင်းနေသောကျန်ရှိနေသေးသော elements အရေအတွက်ထက်ကျော်လွန်သောအခါ function သည် insray နယ်နိမိတ်ကိုအလိုအလျောက်ကြားဖြတ်ပြီးအမှားတစ်ခုသတင်းပို့လိမ့်မည်မဟုတ်ပါ။
ပုံမှန်အားဖြင့် array_slice မှပြန်လာသောခင်းကျင်းမှုကို reindexed (0 မှ စ. ) ။ မူရင်းခင်းကျင်းမှု၏သော့အမည်ကိုသင်ဆက်လက်ထိန်းသိမ်းထားလိုပါကစတုတ်ထ parameter ကို မှန်ကန်စွာ သတ်မှတ်နိုင်သည်။
$array = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
// သော့အမည်များကိုမထိန်းသိမ်းထားပါ
print_r(array_slice($array, 1, 2));
// ရလဒ်: [0 => 'banana', 1 => 'cherry']
// သော့ချက်သော့အမည်များ
print_r(array_slice($array, 1, 2, true));
// ရလဒ်: ['b' => 'banana', 'c' => 'cherry']
$array = [10, 20, 30, 40, 50, 60];
// မှ2ဒြပ်开始ကြားကြား3ဒြပ်
$result1 = array_slice($array, 1, 3);
print_r($result1);
// ထုတ်လုပ်ခြင်း: [20, 30, 40]
// နောက်ဆုံးကနေ4ဒြပ်开始,နောက်ဆုံးမှ snatch2ဒြပ်(နောက်ဆုံးဖယ်ထုတ်ပါ1ဒြပ်)
$result2 = array_slice($array, -4, -1);
print_r($result2);
// ထုတ်လုပ်ခြင်း: [30, 40, 50]
// နောက်ဆုံးကနေ3ဒြပ်开始,ကြားကြား2ဒြပ်
$result3 = array_slice($array, -3, 2);
print_r($result3);
// ထုတ်လုပ်ခြင်း: [40, 50]
// မှ3ဒြပ်开始ကြားကြား所有元素,သော့ချက်သော့အမည်များ
$result4 = array_slice($array, 2, null, true);
print_r($result4);
// ထုတ်လုပ်ခြင်း: [2 => 30, 3 => 40, 4 => 50, 5 => 60]
ကျွန်ုပ်တို့တွင် URL စာရင်းများရှိသည်ဆိုပါစို့, အချို့သော URLs အချို့ကိုကြားဖြတ်ပြီး GitBox.net ဖြင့် domain name ကိုအစားထိုးရန်လိုအပ်သည်ဆိုပါစို့။
$urls = [
'https://example.com/page1',
'https://example.com/page2',
'https://example.com/page3',
'https://example.com/page4',
];
// မှ二个URL开始ကြားကြား两个
$slicedUrls = array_slice($urls, 1, 2);
// ဒိုမိန်းအမည်ကိုအစားထိုးပါ
$processedUrls = array_map(function($url) {
return preg_replace('#https?://[^/]+#', 'https://gitbox.net', $url);
}, $slicedUrls);
print_r($processedUrls);
// ထုတ်လုပ်ခြင်း:
// [
// 'https://gitbox.net/page2',
// 'https://gitbox.net/page3'
// ]