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

array_slice နှင့် array_filter ၏အမိန့်အပေါ်ဆွေးနွေးခြင်း

gitbox 2025-05-20

PHP, array_slice () နှင့် array_filter () နှင့် array_filter () တွင်အသုံးများသောခင်းကျင်းရေးလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ တစ်ခုမှာ array တစ်ခု၏အစိတ်အပိုင်းတစ်ခု၏အစိတ်အပိုင်းတစ်ခုကြားဖြတ်ရန်အသုံးပြုသည်။ အခြားတစ်ခုသည်စံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသော array တွင် element များကို filter လုပ်ရန်အသုံးပြုသည်။ ကျွန်ုပ်တို့သည်အချက်အလက်များကိုလုပ်ဆောင်သောအခါဤလုပ်ဆောင်ချက်နှစ်ခုကိုအတူတကွအသုံးပြုရန်လိုအပ်သည်။ ဒါပေမယ့်မင်းဒါကိုစဉ်းစားဖူးလား

အဖြေမှာ - ဟုတ်ပါသည်, အမှာစာသည်ရလဒ်များကိုအကျိုးသက်ရောက်လိမ့်မည် ။ အချို့မှာအခြေအနေများတွင်အကျိုးသက်ရောက်မှုအလွန်ကြီးမားသည်။

မိတ်ဆက်မှု၏ function ကိုအကျဉ်းချုပ်

  • array_filter (array $ array, callable | NULL $ callback = null): array
    callback function ကိုအားဖြင့် filtered array ကိုပြန်သွားပါ။ အကယ်. callback function ကိုမကုန်တော့ပါက PHP သည်မှားယွင်းသောတန်ဖိုးကို မှားယွင်းသော ( 0 , '0 အပါအ 0 င်) မှ မှားယွင်းသော တန်ဖိုးရှိ (0),

  • array_slice (array $ array, int $ unraset, int $ အရှည် = null $ အရှည် = NULL $ + bool, bool $ present_keys = false
    ခင်းကျင်းအတွင်းရှိခွဲဝေမှုတစ်ခုခင်းကျင်းမှုကိုပြန်ပို့သည်။ အနုတ်လက်ခဏာ offsets ကိုထောက်ပံ့သည်။ မူရင်းသော့ကိုဆက်လက်ထိန်းသိမ်းရန်သင့်ကိုရွေးချယ်နိုင်သည်။

ဥပမာသုံးသပ်ခြင်း

ကျနော်တို့ကအောက်ပါခင်းကျင်းရှိသည်ဆိုပါစို့:

 $data = [0, 1, 2, 3, 4, 5];

ကျနော်တို့အောက်ပါလုပ်ဖို့လိုအပ်:

  1. 2 ထက်ကြီးသောတန်ဖိုးများနှင့်အတူဒြပ်စင်ထွက်စစ်ထုတ်;

  2. filtered ရလဒ်မှပထမ ဦး ဆုံးဒြပ်စင်နှစ်ခုယူပါ။

array_filter နှင့်ထို့နောက် array_slice

 $filtered = array_filter($data, function($item) {
    return $item > 2;
});
$result = array_slice($filtered, 0, 2);
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [3] => 3
    [4] => 4
)

ဤနေရာတွင် output သည် 2 ခုထက်သာလွန်သောဒြပ်စင်များကိုထုတ်ယူရန်ဖြစ်သည်ကိုသတိပြုပါ။ Presister_Keys ကိုမသတ်မှတ်ပါ က array_slice ကို reiseexed ( definition ၏ပုံမှန်အပြုအမူ) နှင့် output ကိုဖြစ်လိမ့်မည်။

 $result = array_slice(array_values($filtered), 0, 2);

ထုတ်လုပ်မှု -

 Array
(
    [0] => 3
    [1] => 4
)

array_slice ပထမနှင့် array_filter

 $sliced = array_slice($data, 0, 4);
$result = array_filter($sliced, function($item) {
    return $item > 2;
});
print_r($result);

ထုတ်လုပ်မှု -

 Array
(
    [3] => 3
)

ဤတွင်ကျွန်ုပ်တို့သည်ပထမ ဦး ဆုံး 4 ဒြပ်စင် (0, 1, 2, 3) ကိုယူပြီး 2 ထက်ကြီးသည့်အရာများကိုစစ်ဆေးပါ။ ရလဒ်တစ်ခုတည်းသာရှိသည်

ဘယ်အမိန့်ကပိုသင့်လျော်သလဲ

  • အကယ်. သင်သည်စံနှုန်းနှင့်ကိုက်ညီသောဒြပ်စင်များအားလုံးမှပထမရလဒ်များကိုယူလိုပါက array_fileter ပထမ ဦး စွာ array_slice

  • အကယ်. သင်သည်မူလခင်းကျင်းမှုရှိပထမ ဦး ဆုံးပစ္စည်းများမှသတ်မှတ်ချက်များနှင့်ကိုက်ညီသောပစ္စည်းများကိုစစ်ထုတ်လိုပါက array_slice ပထမ, array_filter

အထူးသဖြင့်ပုဂ်မြင်, ဒေတာစီးဆင်းမှုကိုအကောင်းမြင်စေပြီး Datasets ကြီးများပြုပြင်သည့်အခါ၎င်းသည်အထူးသဖြင့်အရေးကြီးသည်။

အစစ်အမှန်ဖြစ်ရပ်များအတွက် applications များဥပမာ

သင့်တွင် API interface httpace interface တစ်ခုရှိသည်ဆိုပါစို့။ ခေါင်းစဉ်တွင် "PHP" သော့ချက်စာလုံးနှင့်ထိပ်ဆုံးပို့စ် 5 ခုကိုသင်စစ်ဆေးလိုသည်။

 $response = file_get_contents('https://gitbox.net/api/posts');
$posts = json_decode($response, true);

$filtered = array_filter($posts, function($post) {
    return strpos($post['title'], 'PHP') !== false;
});

$topFive = array_slice(array_values($filtered), 0, 5);

print_r($topFive);

ဤအရာသည်သင်အမှန်တကယ် "PHP ပါ 0 င်သောပို့စ်များအားလုံး၏ထိပ်ဆုံးငါးခု" ကိုအမှန်တကယ်ရရှိရန်သေချာစေသည်။

အပြန်အလှန်အားဖြင့်သင်သည် "PHP" ပါ 0 င်သူများကို "PHP" ပါ 0 င်သောပထမ 10 ခုမှသာစစ်ထုတ်လိုပါက -

 $topTen = array_slice($posts, 0, 10);
$filtered = array_filter($topTen, function($post) {
    return strpos($post['title'], 'PHP') !== false;
});

print_r($filtered);

အကျဉ်းချုပ်

  • ကွဲပြားခြားနားသောအမိန့်, ရလဒ်များအလွန်ကွဲပြားခြားနားလိမ့်မည်။

  • Filter First ထို့နောက် Intercept ကို "အချက်အလက်အားလုံး၏ပိုမိုနှစ်သက်သောအစိတ်အပိုင်းများ" နှင့်သက်ဆိုင်သည်။

  • Intercept ပထမ ဦး ဆုံးအနေဖြင့် "filtering မတိုင်မီဒေတာများ၏ယခင်အပိုင်းကိုကန့်သတ်ခြင်း" အတွက်သင့်လျော်သည်။

array_slice နှင့် array_file_filter ကိုအသုံးပြုခြင်းကိုအသုံးပြုသောအခါသင်၏ပစ်မှတ်ဆိုင်ရာအချက်အလက်များ၏နယ်ပယ်ကိုရှင်းလင်းရန်နှင့်ယုတ္တိအမှားများကိုရှောင်ရှားရန်နှင့်မမျှော်လင့်သောရလဒ်များကိုရှောင်ရှားရန်သင့်ရဲ့ပစ်မှတ်ထားသောအချက်အလက်များကိုရှင်းလင်းရမည်။