လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_filter () မျှော်လင့်ထားသည့်အတိုင်းစစ်ထုတ်ရန်မစစ်ဘူးဆိုရင်ငါဘာလုပ်သင့်သလဲ။

array_filter () မျှော်လင့်ထားသည့်အတိုင်းစစ်ထုတ်ရန်မစစ်ဘူးဆိုရင်ငါဘာလုပ်သင့်သလဲ။

M66 2025-06-05

PHP တွင် array_filter () function ကို callback function မှတဆင့် filter ကို filter လုပ်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်ကိုသင်အသုံးပြုသောအခါ၎င်းသည် array ကိုကျော်လွန်ပြီး callback function ၏ပြန်လာတန်ဖိုးကို အခြေခံ. ဒြပ်စင်ကိုဆက်လက်ထိန်းသိမ်းရန်ဆုံးဖြတ်လိမ့်မည်။ အကယ်. callback function ကို မှန်ကန်စွာ ပြန်လည်ရောက်ရှိပါက element ကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်။ အကယ်. မှားယွင်းသော် လျှင်, element ကို filtered လိမ့်မည်။
သို့သော်တစ်ခါတစ်ရံတွင် array_filter () သည် အလုပ်မထင်ရ, ရလဒ်ကိုမျှော်လင့်ချက်များနှင့်မကိုက်ညီသောကြောင့်ဖြစ်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်ဘုံပြ problems နာများနှင့်ဖြေရှင်းနည်းများကိုဆွေးနွေးပါမည်။

1 ။ callback function ကို၏ပြန်လာတန်ဖိုးမျှော်လင့်ချက်များနှင့်မကိုက်ညီပါ

Array_Filter () အသုံးပြုသော callback function ကို boolean value ကိုပြန်ပို့သင့်သည်။ အကယ်. callback function သည် Null , မှားယွင်းသော သို့မဟုတ်အခြားမှားယွင်းသောတန်ဖိုးများကိုပြန်လည်ရောက်ရှိပါက element များကို filters လုပ်လိမ့်မည်။ အကယ်. မှန်ကန်စွာ ပြန်ရောက်ပါက element ကိုထိန်းသိမ်းထားသည်။ အကယ်. သင် array_filter () သည် မျှော်လင့်ထားသည့်အတိုင်းအလုပ်လုပ်ခြင်းမရှိပါက, callback function ၏ပြန်လာတန်ဖိုးကိုစစ်ဆေးရန်အလွန်အရေးကြီးသည်။

ဥပမာမေးခွန်း -

 $arr = [1, 2, 3, 4, 5];
$result = array_filter($arr, function($value) {
    if ($value % 2 == 0) {
        return 1;  // ဒီမှာပြန်လာသင့်တယ် true,အစား 1
    }
    return false;
});
print_r($result);

WomeRound: callback function ကို အပြည့်အဝ solean value or front သို့မဟုတ် မှားယွင်းသော, မှားယွင်းသော သို့မဟုတ်မှားယွင်းသောအဖြေကိုသေချာစွာသေချာအောင်လုပ်ပါ။

ကုဒ်ပြင်ဆင်ထားသောကုဒ်:

 $arr = [1, 2, 3, 4, 5];
$result = array_filter($arr, function($value) {
    return $value % 2 == 0;  // boolean value ကိုပြန်သွားပါ true သို့မဟုတ် false
});
print_r($result);

2 ။ callback function ကို၏ parameter သည် function ကိုမမှန်ကန်ပါ

မျှော်လင့်ထားသည့် parameter parameter သည် callback function ကိုအမျိုးအစားမကိုက်ညီပါက၎င်းသည်အမှန်တကယ် passback array element အမျိုးအစားနှင့်မကိုက်ညီပါက၎င်းသည်ဒြပ်စင်များကိုမှန်ကန်စွာစစ်ထုတ်ခြင်းမပြုရန်ဖြစ်နိုင်သည်။ ဥပမာအားဖြင့်, callback function ကိုကိန်းဂဏန်းများကိုလက်ခံရရှိရန်မျှော်လင့်ထားသည့်အခါ၎င်းသည်အမှန်တကယ် string ကိုသို့မဟုတ်အခြားအချက်အလက်အမျိုးအစားကိုဖြတ်သန်းသွားပါသည်။

ဥပမာမေးခွန်း -

 $arr = ["1", "2", "3", "4", "5"];
$result = array_filter($arr, function($value) {
    return $value % 2 == 0;  // ဒီမှာ $value ဒါဟာ string တစ်ခုပါ,မမျှော်လင့်သောရလဒ်များကိုဖြစ်ပေါ်စေသည်
});
print_r($result);

ဖြေရှင်းချက် - သရုပ်ဆောင်ခြင်းကိုသုံးပါသို့မဟုတ်ခင်းကျင်းမှု၏ element အမျိုးအစားသည် callback function ၏လိုအပ်ချက်များနှင့်ကိုက်ညီကြောင်းသေချာစေပါ။

ကုဒ်ပြင်ဆင်ထားသောကုဒ်:

 $arr = ["1", "2", "3", "4", "5"];
$result = array_filter($arr, function($value) {
    return (int)$value % 2 == 0;  // integer မှသွန်း
});
print_r($result);

3 ။ အချည်းနှီးသော arrays သို့မဟုတ်အချည်းနှီးသောတန်ဖိုးများကိုပြုပြင်ခြင်း

array_filter () သည် မှားယွင်းသောတန်ဖိုးများအားလုံးကို ပုံမှန် အားဖြင့်မှားယွင်းသောတန်ဖိုးများအားလုံးကိုပုံမှန်အားဖြင့် filter လုပ်လိမ့်မည်။ အကယ်. ခင်းကျင်းမှုတွင် null တန်ဖိုးများရှိပါက၎င်းသည် filtering ရလဒ်ကိုမျှော်မှန်းထားသည်ထက်ပိုမိုဆိုးရှားစေနိုင်သည်။

ဥပမာမေးခွန်း -

 $arr = [0, 1, 2, null, false, "", 3];
$result = array_filter($arr);
print_r($result);  // ဒါဟာဒီမှာထွက် filtered လိမ့်မည် 0、null、false နှင့်အချည်းနှီးသော strings

Solution: If you want to keep values ​​like 0 or false , you can pass a custom callback function, or use the ARRAY_FILTER_USE_BOTH flag to control how to filter.

Custom Callback function အတွက်ကုဒ်:

 $arr = [0, 1, 2, null, false, "", 3];
$result = array_filter($arr, function($value) {
    return $value !== null;  // ချန်လှပ်ထား null ထက်အခြားတန်ဖိုးများ
});
print_r($result);

4 ။ ခင်းကျင်းမှု၏ရည်ညွှန်းချက်ကိုပြုပြင်မွမ်းမံပါ

Array_Filter () မူရင်းခင်းကျင်းမှုကိုပြုပြင်မွမ်းမံမည့်အစားခင်းကျင်းအသစ်တစ်ခုကိုပြန်လည်ရောက်ရှိစေသည်။ မူရင်းခင်းကျင်းမှုကိုပြုပြင်ရန်အတွက်ရည်ညွှန်းချက်သို့မဟုတ်အခြားနည်းလမ်းများလိုအပ်သည်။ အကယ်. သင်သည်မူရင်းခင်းကျင်းမှုကိုတိုက်ရိုက်ကိုင်တွယ်လိုပါက array_walk () သို့မဟုတ်အခြားလုပ်ဆောင်မှုများကိုသုံးနိုင်သည်။

ဥပမာမေးခွန်း -

 $arr = [1, 2, 3, 4, 5];
array_filter($arr, function($value) {
    return $value > 3;
});
print_r($arr);  // မူရင်းခင်းကျင်းကိုပြုပြင်မထားပါ

ဖြေရှင်းချက် - မူရင်းခင်းကျင်းမှုကိုသင်ပြုပြင်လိုပါက array_walk () ကို သုံးနိုင်သည်သို့မဟုတ်တန်ဖိုးကိုတိုက်ရိုက်ပြန်လည်နေရာချထားနိုင်သည်။

ကုဒ်ပြင်ဆင်ထားသောကုဒ်:

 $arr = [1, 2, 3, 4, 5];
$arr = array_filter($arr, function($value) {
    return $value > 3;
});
print_r($arr);  // ပြုပြင်ထားသောခင်းကျင်းမှုကိုတိုက်ရိုက်ပြန်ပို့ပါ

5 ။ array_filter () parameters တွေကို

array_filter () သည် စီစစ်ခြင်းစံသတ်မှတ်ချက်များကိုသတ်မှတ်ရန်ဒုတိယ parameter ကိုခွင့်ပြုသည်။ ပုံမှန်အားဖြင့်၎င်းသည် element များကို filter လုပ်ရန် callback function ကိုအသုံးပြုသည်။ သို့သော်ဤ parameter သည်အလွဲသုံးစားလုပ်လျှင်၎င်းသည်ပြ problems နာများကိုလည်းဖြစ်ပေါ်စေနိုင်သည်။

ဥပမာမေးခွန်း -

 $arr = [1, 2, 3, 4, 5];
$result = array_filter($arr, 1);  // ကိန်းဂဏန်းတန်ဖိုးကိုမှားယွင်းစွာအသုံးပြုခဲ့သည် 1
print_r($result);

ဖြေရှင်းချက် - ဒုတိယ parameter သည်မှန်ကန်သော callback function ကိုသေချာအောင်လုပ်ပါ။

ကုဒ်ပြင်ဆင်ထားသောကုဒ်:

 $arr = [1, 2, 3, 4, 5];
$result = array_filter($arr, function($value) {
    return $value % 2 == 0;  // မှန်ကန်စွာ callback လုပ်ဆောင်ချက်များကိုသုံးပါ
});
print_r($result);