လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် array_filter () ကိုအသုံးပြုသောအခါ 0 ကို 0 လုံး 0 တန်ဖိုးရှိသောတန်ဖိုးနှင့်အတူဒြပ်စင်သည်အဘယ်ကြောင့်ဖျက်ပစ်သနည်း။

PHP တွင် array_filter () ကိုအသုံးပြုသောအခါ 0 ကို 0 လုံး 0 တန်ဖိုးရှိသောတန်ဖိုးနှင့်အတူဒြပ်စင်သည်အဘယ်ကြောင့်ဖျက်ပစ်သနည်း။

M66 2025-06-05

PHP တွင် array_filter () function ကို etray တစ်ခုအတွင်းရှိ element များကို filter လုပ်ရန်အသုံးပြုသည်။ အကယ်. callback function ကိုမသတ်မှတ်ပါက array_filter () သည် "မှားယွင်းသောတန်ဖိုးများ" ဟုယူမှတ်ထားသော element များကိုဖျက်ရန် default callback function ကိုသုံးလိမ့်မည်။ PHP ရှိ "မှားယွင်းသောတန်ဖိုးများ" တွင် မှားယွင်းသော , Null , 0, 0 င် " (အချည်းနှီးသော string), array (အချည်းနှီးသော string) နှင့် 0.0

ထို့ကြောင့် PHP တွင် array_filter () ကို အသုံးပြုသောအခါ Array ရှိ Element တန်ဖိုးသည် 0 ဖြစ်ပါလိမ့်မည်။ ၎င်းသည်မှားယွင်းသောတန်ဖိုးကိုစဉ်းစားပြီးဖျက်ပစ်လိမ့်မည်။ ဤပြ problem နာကိုပိုမိုနားလည်ရန် array_filter ၏အပြုအမူကိုပြသရန်တိကျသောဥပမာတစ်ခုကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။

ဥပမာ 1: array_filter () ပုံမှန်အပြုအမူ

 <?php
$array = [0, 1, 2, 3, 0, 4, 5, 0];

$filtered = array_filter($array);

print_r($filtered);
?>

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

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

အထက်ပါကုဒ်များတွင်ကိန်းများစွာပါ 0 င်သော instegers များပါ 0 င်သည့် in ရာမစ်ကိုကျွန်ုပ်တို့ဖန်တီးသည်။ ကျွန်ုပ်တို့ array_filter ကို သုံးသောအခါ 0 ၏တန်ဖိုးရှိဒြပ်စင်အားလုံးကိုပယ်ဖျက်ခြင်းကြောင့် 0 ကိုဖျက်ပစ်သည်။

ဘာကြောင့်ဒီလိုဖြစ်ရတာလဲ

ဘာဖြစ်လို့လဲဆိုတော့ array_filter () function ရဲ့ default အပြုအမူရဲ့မူလအပြုအမူကတော့ array ကနေ "မှားယွင်းသောတန်ဖိုးများ" ဟုမှတ်ယူထားသည့်အရာအားလုံးကိုဖယ်ရှားရန်ဖြစ်သည်။ PHP ၏ပြောင်းလဲခြင်းစည်းမျဉ်းစည်းကမ်းများသည် 0 င်မှားယွင်းသောတန်ဖိုးကိုဆုံးဖြတ်သည်။ အထူးသဖြင့် 0 သည် မှားယွင်းသောအရာ နှင့် မှားယွင်းသော ကြောင့် array_filter () eleme ကိုဖျက်ရန် array_filter ()

element တွေကို 0 ရဲ့တန်ဖိုးနဲ့ဘယ်လိုနေလဲ။

အကယ်. သင်သည် Element များကို 0 0 တန်ဖိုးရှိ 0 0 ကိုသိမ်းထားလိုပါကစိတ်ကြိုက်ခေါ်ဆိုမှု function ကို ပေး. သင်လုပ်နိုင်သည်။ ဥပမာအားဖြင့်:

 <?php
$array = [0, 1, 2, 3, 0, 4, 5, 0];

$filtered = array_filter($array, function($value) {
    return $value === 0 || $value > 0;
});

print_r($filtered);
?>

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

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

ဤဥပမာတွင် 0 0 ၏တန်ဖိုးနှင့်အတူ element ကိုထိန်းသိမ်းထားရန်သေချာစေရန်ထုံးစံခေါ်ဆိုမှု function ကိုအသုံးပြုသည်။

အကျဉ်းချုပ်

array_filter () ကို သုံးသောအခါ PHP သည် 0 ကို မှားယွင်းသောတန်ဖိုးတစ်ခုအဖြစ် 0 င်သောကြောင့် 0 ကို 0 မျိုးစုံနှင့် 0 0 ၏တန်ဖိုးနှင့်အတူဒြပ်စင်များကိုဖျက်ပစ်လိုက်သည်။ callback function ကိုမရှိခြင်းကြောင့် array_filter () သည် ဤမှားယွင်းသောတန်ဖိုးများကိုအလိုအလျောက်ဖျက်လိမ့်မည်။ အကယ်. သင်သည် 0 သို့မဟုတ်အခြားသီးခြားတန်ဖိုးများကိုသိမ်းထားရန်လိုအပ်ပါက filtering အပြုအမူကိုထိန်းချုပ်ရန်စိတ်ကြိုက်ခေါ်ဆိုမှု function ကိုပေးနိုင်သည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    array_filter