ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များကိုလုပ်ဆောင်သည့်အခါအချက်အလက်များကို filtering သို့မဟုတ် pre-filtering အချို့ကိုလုပ်ဆောင်ရန်လိုအပ်လေ့ရှိသည်။ PHP သည်အလွန်အဆင်ပြေသော function array_fileter ကိုထောက်ပံ့ပေးသည်။ ၎င်းသည်၎င်းကိုမေးမြန်းပြီးနောက်အချက်အလက်များကိုထပ်မံလုပ်ဆောင်ရန်ကူညီနိုင်သည်။ ဤဆောင်းပါးသည်ဒေတာဘေ့စ်စုံစမ်းမှုများကိုမလုပ်ဆောင်မီဒေတာဘေ့စ်စုံစမ်းရေးရလဒ်များကိုမလုပ်ဆောင်မီဒေ တာ Pre-filter ကိုလုပ်ဆောင်ရန်မည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။
ပထမ ဦး စွာ Array_Filter function ၏အခြေခံအသုံးပြုမှုကိုနားလည်ကြပါစို့။ array_filter သည် build-in function တစ်ခုဖြစ်ပြီး array တစ်ခုရှိ element များသို့ callback function ကိုအသုံးပြုသော built-in function တစ်ခုဖြစ်သည်။ လုပ်ဆောင်ချက်၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
array_filter(array $array, callable $callback = null, int $mode = 0): array
$ array : filter သို့ array ။
$ callback : array အတွက်ဒြပ်စင်တစ်ခုချင်းစီကိုစမ်းသပ်ဖို့ callback function ကို။ အကယ်. callback function ကို ပြန်လည်ရောက်ရှိ လျှင်, element ကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်, သို့မဟုတ်ပါကဖျက်ပစ်လိမ့်မည်။
$ Mode : ဤ parameter သည် callback function ကိုမည်သို့အလုပ်လုပ်သည်ကိုဆုံးဖြတ်သည်။ ပုံမှန်အားဖြင့် callback function ကိုပြန်ရောက်သည့်တန်ဖိုးကို စစ်မှန်သော အရာသည် 0 င် ကြောင်းဖော်ပြသည်။
အကယ်. callback function ကိုမဖွင့ ် ပါက array_filter သည် မှားယွင်းသော အရာများအားလုံးကို မှားယွင်းစွာ ဖော်ပြ လိမ့် မည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များတွင်များစွာသောမှတ်တမ်းများတွင်များစွာသောမှတ်တမ်းများပါ 0 င်ပြီးတိကျသောအခြေအနေများနှင့်ကိုက်ညီသောအချက်အလက်များကိုကျွန်ုပ်တို့သာဂရုစိုက်သည်။ ဤကိစ္စတွင်မူ PHP တွင် PO-filtering ကို PHP တွင် database level တွင် filter လုပ်ခြင်းကိုရှောင်ရှားရန် array_filter function မှတဆင့်လုပ်ဆောင်နိုင်သည်။
ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်မှအသုံးပြုသူအချက်အလက်များပါ 0 င်သော array တစ်ခုဖြစ်ပြီးဒြပ်စင်တစ်ခုစီသည် ID , အမည် နှင့် ခေတ် အကွက်များပါ 0 င်သည့်အပေါင်းအသင်းတစ်ခုစီဖြစ်သည်။ ယခုကျွန်ုပ်တို့သည်အသက် 18 နှစ်ထက်အသက်ကြီးသောသုံးစွဲသူများအားလုံးကိုစစ်ထုတ်လိုသည်။
<?php
// ဤသည်ဒေတာဘေ့စစုံစမ်းမှုကနေရရှိသောရလဒ်ဖြစ်ပါတယ်ယူဆ
$users = [
['id' => 1, 'name' => 'Alice', 'age' => 20],
['id' => 2, 'name' => 'Bob', 'age' => 17],
['id' => 3, 'name' => 'Charlie', 'age' => 25],
['id' => 4, 'name' => 'David', 'age' => 16],
];
// အသုံးပြုarray_filterfiltering လုပ်ဆောင်ပါ
$adultUsers = array_filter($users, function($user) {
return $user['age'] > 18;
});
// output filter ရလဒ်များ
print_r($adultUsers);
?>
ဤဥပမာတွင်အသက် 18 နှစ်အောက်သုံးစွဲသူအားလုံးကို array_filter function နှင့် callback function ကိုမှတစ်ဆင့်စစ်ထုတ်သည်။ ဤနည်းအားဖြင့် PHP ရှိ query ရလဒ်များကို PHP ရှိရလဒ်များကိုကြိုတင်ထုတ်ယူနိုင်မည်,
ကျွန်ုပ်တို့သည်အသက် 18 နှစ်အောက်သုံးစွဲသူများကိုစစ်ထုတ်ရန်သာမက၎င်းတို့၏အမည်များကို "A" အက်ခရာဖြင့်စတင်ရန်လည်းလိုသည်ဟုဆိုပါစို့။ ကျွန်ုပ်တို့သည် callback function ကိုပိုမိုအခြေအနေများထည့်ခြင်းဖြင့်ပြုလုပ်နိုင်သည်။
<?php
// အသုံးပြုarray_filterမျိုးစုံခြွင်းချက်စစ်ထုတ်ခြင်းလုပ်ဆောင်ပါ
$filteredUsers = array_filter($users, function($user) {
return $user['age'] > 18 && strpos($user['name'], 'A') === 0;
});
// output filter ရလဒ်များ
print_r($filteredUsers);
?>
ဤဥပမာတွင်သုံးစွဲသူ၏အမည်သည် Stropos function မှတစ်ဆင့် "A" မှတစ်ဆင့် "A" အက်ခရာဖြင့်စတင်ခြင်းရှိမရှိစစ်ဆေးပြီးအသက် 18 နှစ်အောက်မှသာအသုံးပြုသူကိုဆက်လက်ထိန်းသိမ်းထားသည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်စိစစ်ရေးအတွက်အခြေအနေများစွာကိုပေါင်းစပ်နိုင်သည်။
PHP တွင် Array_Fileter ကို အသုံးပြုနေစဉ် filtering data ကိုလွယ်ကူချောမွေ့စေနိုင်သည်, ၎င်းသည်ဒေတာဘေ့စ်မေးမြန်းချက်များ၏ filtering function ကိုအစားထိုးရန်၎င်းကိုလုံး 0 သာအားကိုးသင့်သည်ဟုမဆိုလိုပါ။ ဒေတာဘေ့စ်မေးမြန်းချက်များသည်တတ်နိုင်သမျှထိရောက်စွာဖြစ်သင့်သည်။
သို့သော်အချို့ဖြစ်ရပ်များတွင် PHP ရှိ Array_Fileter သည်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်ပြီးဒေတာဘေ့စ်စုံစမ်းမှုများရလဒ်များအပြီးအသေးစားဒေတာအစုများအတွက်ကြိုတင်စစ်ထုတ်ခြင်းများအတွက်မြန်ဆန်စွာ filtering လုပ်ရန်ဖြစ်သည်။
ကျွန်ုပ်တို့သည်သုံးစွဲသူအချက်အလက်များကို http://api.m66.net/user/list မှ curl မှတစ်ဆင့် Curl မှတစ်ဆင့် ရယူ. အသက် 18 နှစ်အောက်သုံးစွဲသူများကိုစစ်ထုတ်ရန်မျှော်လင့်ပါသည်။