လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_slice အတွက် offset နှင့်အရှည်၏အဓိပ္ပာယ်ကိုခွဲခြမ်းစိတ်ဖြာခြင်း

array_slice အတွက် offset နှင့်အရှည်၏အဓိပ္ပာယ်ကိုခွဲခြမ်းစိတ်ဖြာခြင်း

gitbox 2025-05-28

PHP တွင် array_slice function သည် array တစ်ခုမှခွဲဝေမှုတစ်ခုမှခင်းကျင်းရန်အလွန်လက်တွေ့ကျတဲ့ခင်းကျင်းမှုလုပ်ငန်းလည်ပတ်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏ parameters တွေကို၏ အပြုသဘော နှင့်အပျက်သဘော ဆောင်သော အဓိပ္ပာယ်ကိုနားလည်ခြင်းသည် arrays ၏ပြောင်းလွယ်ပြင်လွယ်ကိုင်တွယ်မှုအတွက်အလွန်အရေးကြီးသည်ကိုနားလည်ခြင်းသည်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည်ဤ parameters နှစ်ခု၏အဓိပ္ပာယ်ကိုအသေးစိတ်လေ့လာပြီး၎င်းတို့အသုံးပြုမှုကိုကျွမ်းကျင်ရန်ကူညီရန်ဥပမာများကိုပေါင်းစပ်ပါလိမ့်မည်။

array_slice function ကိုမိတ်ဆက်

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 parameters တွေကိုအသေးစိတ်ရှင်းပြချက်

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']

အရှည် parameters တွေကိုအသေးစိတ်ရှင်းပြချက်

အရှည် 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 နှင့်အရှည်၏ပေါင်းစပ်အပေါ်မှတ်စုများ

  • offset သည်အ ပေါင်း အန္တိမိည်ဖြစ်သည့်အခါ အရှည်သည် array ၏အဆုံးတွင်ရှိသောဒြပ်စင်အရေအတွက်ကိုဆိုလိုသည်

  • offset သည်အနုတ်လက်ခဏာနှင့် အရှည်သည် အပြုသဘောဆောင် သည့် အခါ,

  • အကြွင်းမဲ့အာဏာတန်ဖိုးသည် ခင်း ကျင်းနေသောကျန်ရှိနေသေးသော elements အရေအတွက်ထက်ကျော်လွန်သောအခါ function သည် insray နယ်နိမိတ်ကိုအလိုအလျောက်ကြားဖြတ်ပြီးအမှားတစ်ခုသတင်းပို့လိမ့်မည်မဟုတ်ပါ။

PresentNet_Keys Parameter သည်

ပုံမှန်အားဖြင့် 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 ဥပမာများနှင့်အတူပေါင်းစပ်

ကျွန်ုပ်တို့တွင် 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'
// ]