လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အကယ်. သင်သည် callback function ကိုမလွန်ပါကရလဒ်ကိုအကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ

အကယ်. သင်သည် callback function ကိုမလွန်ပါကရလဒ်ကိုအကျိုးသက်ရောက်လိမ့်မည်မဟုတ်ပါ

M66 2025-06-04

PHP ၏ Array processing function တွင် array_filter () သည်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်ပြီး၎င်း၏ရည်ရွယ်ချက်မှာ "စံနှုန်းများနှင့်မကိုက်ညီသောအရာများ" ဒြပ်စင်များကိုဖယ်ရှားရန်ဖြစ်သည်။ သို့သော်၎င်းတွင်အစပြုသူများကိုရှုပ်ထွေးစေနိုင်သောအပြုအမူရှိသည်။

ထို့နောက်မေးခွန်းမှာ -

array_fileter () ကို သုံးသောအခါသင် callback function ကိုမလွန်ပါကရလဒ်အပေါ်အကျိုးသက်ရောက်မှုမရှိပါဟုသင်မှားယွင်းစွာစဉ်းစားမည်လော။

အတူတူနက်ရှိုင်းစွာဆန်းစစ်ကြပါစို့။

array_filter ၏ပုံမှန်အပြုအမူ

array_filter (array-$ array), Callable $ callback = null, int $ mode ကို = 0): ဒုတိယမြောက် callback $ callback optional ဖြစ်ပါတယ်။

Callback function ကိုသင်မပေးသည့် အခါ array_filter () သည် booolval () ကို "true" ဟုတ်မဟုတ်ဆုံးဖြတ်ရန် default boolval () ကို အသုံးပြုလိမ့်မည်။ ဆိုလိုသည်မှာ၎င်းသည် "အတုအယောင်" ဒြပ်စင်အားလုံးကိုဖယ်ရှားပေးသည်။

  • မှားသော

  • 0 (ကိန်းဂဏန်းသို့မဟုတ် string)

  • တရားစွာလဲှ

  • အချည်းနှီးသော string ကို ""

  • အချည်းနှီးသောခင်းကျင်း []

ဥပမာ 1: callback function ကိုမလွန်ပါ

 $data = [0, 1, false, 2, '', 3, null];

$result = array_filter($data);

print_r($result);

output ရလဒ် -

 Array
(
    [1] => 1
    [3] => 2
    [5] => 3
)

သင် 0 င် , false '' နှင့် NULL အားလုံး filtered နေကြသည်။

ဥပမာ 2 - ငါပြန်ခေါ်မှုမလွန်ပါကငါမကိုင်တွယ်နိုင်ဟုမှားယွင်းစွာစဉ်းစားမိသည်

အစပြုသူများစွာကစဉ်းစားမိလိမ့်မည်။

အကယ်. ကျွန်ုပ်သည် calmback function ကိုမသွားပါကမည်သည့်အရာကိုမဆိုလုပ်ခြင်းမခံရပါ။

ဒါပေမယ့်သိသာထင်ရှားတဲ့ဒီနားလည်မှုလွဲဖြစ်ပါတယ်။ အမှန်မှာ, ပုံမှန်အပြုအမူကိုယ်နှိုက်သည် ယုတ္တိဗေဒကိုစစ် ထုတ်ပြီး "Boolean အမှန်တရား" ကိုအခြေခံသည်။

ဥပမာ 3 - CallBack ယုတ္တိဗေဒကိုသင်ကိုယ်တိုင်သတ်မှတ်ပါ

အကယ်. သင်သည် null value ကိုသာထုတ်ယူလိုပါက 0 , မှားယွင်းသော ,

 $data = [0, 1, false, 2, '', 3, null];

$result = array_filter($data, function($item) {
    return $item !== null;
});

print_r($result);

ရလဒ်ရလဒ် -

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

ဤအချိန်တွင် NULL ကို သာစစ်ထုတ်ကာအခြား "မှားယွင်းသောတန်ဖိုးများ" ကိုဆက်လက်ထိန်းသိမ်းထားဆဲဖြစ်သည်။

အကျဉ်းချုပ်

callback function ကိုဖြတ်သန်းခြင်းမရှိပဲ Array_Filter () သည် "အကူးအပြောင်းမဟုတ်ပါ" မဟုတ်ဘဲ boolean ence တွင် "မှားယွင်းသောတန်ဖိုးများ" အားလုံးကိုပုံမှန်အားဖြင့်စစ်ထုတ်ခြင်းမဟုတ်ပါ။ ဒေတာများကိုသန့်ရှင်းရေးလုပ်သည့်အခါ၎င်းသည်အသုံးဝင်သည်, သို့သော်၎င်းသည်နားလည်မှုလွဲမှားခြင်းများကိုအလွယ်တကူဖြစ်ပေါ်စေနိုင်သည်။

ကျိုးကြောင်းဆီလျော်ရှုပ်ထွေးမှုကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်သင့်အားကျွန်ုပ်တို့အကြံပြုပါသည်။

  • သင်စစ်ထုတ်လိုသည့်တိကျသောအကြောင်းအရာကိုခွဲခြားသတ်မှတ်ရန်,

  • ထုံးစံယုတ္တိဗေဒလိုအပ်ချက်ရှိပါကအမြဲတမ်း callback function ကိုအတိအလင်းဖြတ်ကျော်ပါ။

  • သော့ချက်အမည်ကိုထိန်းသိမ်းရန်ဂရုပြုပါ (မူရင်းခင်းကျင်းမှု၏သော့ကိုမူလစာမျက်နှာအမည်ကိုပုံမှန်အားဖြင့်ထိန်းသိမ်းထားသည်) ။

နောက်ထပ်ဖတ်ရှုခြင်း

ဤလုပ်ဆောင်မှုကိုအမှန်တကယ် application တွင်ပိုမိုကြည့်ရှုရန်အောက်ပါစာမျက်နှာကိုကြည့်ရှုရန်အောက်ပါစာမျက်နှာသို့သွားနိုင်သည် (နမူနာလိပ်စာဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးထားသည်):