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

Laravel တွင် array_filter () function ကိုမည်သို့အမှန်တကယ်အသုံးပြုရမည်နည်း။ ဘုံအခြေအနေများအဆင့်ဆင့်ကိုနားလည်သဘောပေါက်ရန်သင့်အားယူပါ

M66 2025-06-04

Laravel ၏နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုဖြစ်စဉ်တွင် "မမှန်မကန်" ဒေတာများကိုသန့်ရှင်းရေးလုပ်ရန်လိုအပ်သည့်အခြေအနေများတွင်မကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဥပမာအားဖြင့်, ပုံစံဖြင့်ဖြည့်ထားသောကွက်လပ်များ, API parameters များရှိအချည်းနှီးဖြစ်သောတန်ဖိုးများ (သို့) ဒေတာပစ္စည်းများကိုအချို့သောယုတ္တိဗေဒအပေါ် အခြေခံ. စစ်ထုတ်ရန်လိုအပ်သည်။ PHP တွင် Array_Filter () သည်ဤပြ problems နာများကိုကိုင်တွယ်ရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။

Array_filter () သည် PHP function ဖြစ်သော်လည်း Laravel Project တွင်အလွန်ကျယ်ပြန့်သော application ဇာတ်လမ်းလည်းရှိသည်။ သင်၏ Laravel project တွင်လျောက်ပတ်သောစီမံကိန်းကိုအသုံးပြုရန်ဥပမာတမှန်ကန်သောဥပမာအနည်းငယ်ဖြင့်သင့်ကိုခြေလှမ်းတစ်လှမ်းဖြင့်ခြေလှမ်းတစ်ဆင့်တက်မည်

အခြေခံအသုံးပြုမှု - ပြောင်ပြောင်တင်းတင်း "array မှ null သို့မဟုတ်အချည်းနှီးသောကြိုးများကိုဖယ်ရှားပါ

အသုံးအများဆုံးအခြေအနေတစ်ခုမှာအသုံးပြုသူသည်ပုံစံကိုတင်ပြသောအခါဖြစ်သည်။ သို့သော်အချို့လယ်ကွင်းများသည်ဗလာဖြစ်သည်။ ကျွန်ုပ်တို့သည်အချည်းနှီးသောနယ်ပယ်များကိုသာလုပ်ကိုင်လိုပါသည်။

 $data = [
    'name' => 'Alice',
    'email' => '',
    'phone' => null,
    'age' => 25,
];

// အသုံးပြု array_filter အချည်းနှီးသောတန်ဖိုးများကို filter(၎င်းကိုပုံမှန်အားဖြင့်ဖယ်ရှားပစ်လိမ့်မည် false、null、''、0)
$filtered = array_filter($data);

dd($filtered);

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

 [
    'name' => 'Alice',
    'age' => 25,
]

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

 public function store(Request $request)
{
    $data = array_filter($request->only(['name', 'email', 'phone', 'age']));
    
    // အောက်ပါယုတ္တိဗေဒသည်အချည်းနှီးသောနယ်ပယ်များကိုသာသာပြုလုပ်သည်
    User::create($data);

    return redirect()->to('https://m66.net/success');
}

စိတ်ကြိုက် filter များ - နံပါတ်များကိုသိမ်းထားပါ

default array_filter () သည်နံပါတ် 0 နှင့် string "0" အပါအ 0 င် "မှားယွင်းသောတန်ဖိုးများ" အားလုံးကိုဖယ်ရှားပေးသည်။ သငျသညျအချည်းနှီးသော strings ဖယ်ရှားပစ်နှင့်တရားဝင် 0s ကိုစောင့်ရှောက်လိုလျှင်ကော။

 $data = [
    'status' => 0,
    'code' => '0',
    'description' => '',
];

// Custom Callbacks,အချည်းနှီးသောကြိုးများကိုသာစစ်ထုတ်ပါ
$filtered = array_filter($data, function ($value) {
    return $value !== '';
});

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

 [
    'status' => 0,
    'code' => '0',
]

ဤစာအရေးအသားနည်းလမ်းသည်အမိန့်အခြေအနေနှင့်အခြားယုတ္တိဗေဒများကိုကိုင်တွယ်ရာတွင်အလွန်လက်တွေ့ကျသည်။

collections နှင့်အတူပေါင်းစပ်အတွက်အသုံးပြုပါ

Laravel ၏စုဆောင်းမှုသည် array_filter () နှင့်ဆင်တူသည့်အလားတူ filter () နည်းလမ်းကိုလည်းပေးသည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်ကွင်းဆက်တစ်ခုတွင်လည်ပတ်နိုင်သည်။

 $users = collect([
    ['name' => 'Tom', 'email' => 'tom@m66.net'],
    ['name' => 'Jerry', 'email' => null],
    ['name' => 'Spike', 'email' => ''],
]);

$filtered = $users->filter(function ($user) {
    return !empty($user['email']);
});

လော့ဂ်ဂစ်ကိုရိုးရှင်းစေရန် filter () ကို တိုက်ရိုက်သုံးနိုင်သည်။

 $filtered = $users->filter(fn($user) => !empty($user['email']));

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

 [
    ['name' => 'Tom', 'email' => 'tom@m66.net'],
]

လက်တွေ့ကျသောဇာတ်လမ်း - တောင်းဆိုမှုများတွင်ရှာဖွေရေးစံသတ်မှတ်ချက်များ

သင်အသုံးပြုသူရှာဖွေရေး function ကိုရေးဆွဲနေပြီးရှေ့ဆုံးသည် optional parametersks အချို့ကိုဖြတ်သန်းသွားပါစို့။

 public function index(Request $request)
{
    $filters = array_filter($request->only(['name', 'email', 'status']), function ($val) {
        return $val !== '';
    });

    $users = User::where($filters)->get();

    return view('users.index', compact('users'));
}

ဤနည်းအားဖြင့်သင်သည် မည်သည့်နေရာတွင် မမှန်ကန်တဲ့စုံစမ်းမှုများကိုရှောင်ရှားရန်အမှန်တကယ်သွင်းအားစုများအပေါ် အခြေခံ. စုံစမ်းမှုအခြေအနေများကိုပြောင်းလဲနိုင်သည်။

အကျဉ်းချုပ်

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

အကယ်. သင်သည် Array_filter () သင်၏စီမံကိန်းတွင်မသုံးပါကသင်ယခုစမ်းကြည့်ပြီး Laravel ကိုရေးသောအခါကောင်းကောင်းကူညီနိုင်သည်။

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

    array_filter