လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ကွဲပြားခြားနားသောအခြေအနေနှင့်ကိုက်ညီရန် array_filter () ၏ filtering စည်းမျဉ်းစည်းကမ်းတွေကို parameterize

ကွဲပြားခြားနားသောအခြေအနေနှင့်ကိုက်ညီရန် array_filter () ၏ filtering စည်းမျဉ်းစည်းကမ်းတွေကို parameterize

M66 2025-06-03

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

1 ။ array_filter ၏အခြေခံအသုံးပြုမှု ()

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

 <?php
$array = [1, 2, 3, 4, 5, 6];
$filtered = array_filter($array, function($item) {
    return $item % 2 !== 0; // ထူးဆန်းနံပါတ်များကိုသာထိန်းသိမ်းထားသည်
});
print_r($filtered);
?>

ရလဒ်များအစက်အပြောက်:

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

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် callback function မှတဆင့်စစ်ထုတ်ခြင်းစည်းမျဉ်းကိုသတ်မှတ်သည်။ သို့သော်လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်အချို့သော filtering စည်းမျဉ်းမျိုးရှိနိုင်သဖြင့်ကျွန်ုပ်တို့သည် callback လုပ်ဆောင်ချက်အသစ်များရေးသားခြင်းအစား filtering စည်းမျဉ်းများကိုပြောင်းလွယ်ပြင်လွယ်များကိုရွေးချယ်နိုင်လိမ့်မည်။

2 ။ parameterized filtering စည်းမျဉ်းစည်းကမ်းတွေ

စစ်စည်းမျဉ်းများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စေရန်အတွက်ကျွန်ုပ်တို့သည်စီစစ်ခြင်းဆိုင်ရာစည်းမျဉ်းများကိုပိုမိုလွယ်ကူစွာပြုလုပ်နိုင်သည်။ အကောင်အထည်ဖော်ရန်အတွက်သော့ချက်သည် filtering rule ကို parray_filter () အတွက် parameter အဖြစ်သတ်မှတ်ရန်ဖြစ်သည်။

ဥပမာ - အခြေအနေများအပေါ် အခြေခံ. filtering စည်းမျဉ်းများကိုရွေးချယ်ပါ

ကွဲပြားခြားနားသောအခြေအနေများတွင်ကွဲပြားခြားနားသောအခြေအနေများတွင်ဟုခေါ်သော filtering စည်းမျဉ်းများကို fulations သို့မဟုတ် classes များသို့စီစစ်ခြင်းများကို encapsate လုပ်နိုင်သည်။

 <?php
function filterArray(array $array, callable $filterFunction): array {
    return array_filter($array, $filterFunction);
}

// ကွဲပြားခြားနားသော filtering စည်းမျဉ်းစည်းကမ်းတွေကိုသတ်မှတ်
$isOdd = function($item) {
    return $item % 2 !== 0; // ထူးဆန်းနံပါတ်များကိုသာထိန်းသိမ်းထားသည်
};

$isEven = function($item) {
    return $item % 2 === 0; // ပင်နံပါတ်များကိုသာထိန်းသိမ်းထားကြသည်
};

$array = [1, 2, 3, 4, 5, 6];

// ကွဲပြားခြားနားသော filtering စည်းမျဉ်းများကိုသုံးပါ
$filteredOdd = filterArray($array, $isOdd);
$filteredEven = filterArray($array, $isEven);

print_r($filteredOdd); // ထူးဆန်းနံပါတ်များကိုသာထိန်းသိမ်းထားသည်
print_r($filteredEven); // ပင်နံပါတ်များကိုသာထိန်းသိမ်းထားကြသည်
?>

ရလဒ်ရလဒ် -

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

အပေါ်ကဥပမာမှာ filtering စည်းမျဉ်းတွေကို functionray () function parameters တွေကိုဖြတ်သန်းသွားတယ်, ဤနည်းလမ်းသည် code ကိုပိုမိုတိကျပြီးပြန်လည်အသုံးပြုနိုင်သည်။

ဥပမာ - 0 င်လာသော parameters များကို အခြေခံ. စစ်စည်းမျဉ်းများကိုထုတ်ပေးသည်

တခါတရံတွင်ကျွန်ုပ်တို့သည်စီစစ်ခြင်းဆိုင်ရာစည်းမျဉ်းများကိုပြင်ပသွင်းအားစုများမှတစ်ဆင့် (ဥပမာအသုံးပြုသူချိန်ညှိချက်များ, ဤကိစ္စတွင်ကျွန်ုပ်တို့သည်လွန်ကဲသော parameters တွေကို အခြေခံ. သက်ဆိုင်ရာစီစစ်ခြင်းဆိုင်ရာစည်းမျဉ်းများကိုထုတ်ပေးနိုင်သည်။

 <?php
function generateFilterRule(string $type): callable {
    if ($type === 'odd') {
        return function($item) {
            return $item % 2 !== 0; // ထူးဆန်းနံပါတ်များကိုသာထိန်းသိမ်းထားသည်
        };
    } elseif ($type === 'even') {
        return function($item) {
            return $item % 2 === 0; // ပင်နံပါတ်များကိုသာထိန်းသိမ်းထားကြသည်
        };
    } else {
        return function($item) {
            return true; // filtering မရှိပါ
        };
    }
}

$array = [1, 2, 3, 4, 5, 6];

$filterRule = generateFilterRule('odd'); // ထူးဆန်းသောစည်းမျဉ်းကိုရွေးချယ်ပါ
$filtered = array_filter($array, $filterRule);
print_r($filtered);
?>

ရလဒ်ရလဒ် -

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

ဤဥပမာတွင် GeneralFilterrule () function သည် passed string ကို အခြေခံ. စစ်ချိန်ညှိချက်များကိုဆုံးဖြတ်ပြီးစစ်ထုတ်ခြင်းအခြေအနေများကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စေသည်။

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

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်စစ်စည်းမျဉ်းများသည်တစ်ခါတစ်ရံတွင်ပြင်ပဒေတာရင်းမြစ်များပေါ်တွင်သာမှီခိုသည် (ဥပမာဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်များ, API ပြန်လာသောတန်ဖိုးများစသည်) ။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည်ပြင်ပဒေတာအရင်းအမြစ်များကိုစီစစ်ခြင်းဆိုင်ရာစည်းမျဉ်းများထည့်သွင်းနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် M66.net မှရရှိသော configurations အပေါ် အခြေခံ. စစ်ထုတ်မှုများပြုလုပ်နိုင်သည်။

 <?php
// ဒီကနေယူဆ m66.net ရရှိသော filter စည်းမျဉ်းပြင်ဆင်ခြင်း
$filterConfig = [
    'type' => 'even' // ဒီမှာပြင်ပ interface မှရရှိသောတန်ဖိုးကိုဖြစ်နိုင်သည် 'odd' သို့မဟုတ် 'even'
];

// ပြင်ပဒေတာအရင်းအမြစ်များအပေါ် အခြေခံ. စစ်ဆင်ရေးစည်းမျဉ်းများထုတ်လုပ်ခြင်း
$filterRule = generateFilterRule($filterConfig['type']);

$array = [1, 2, 3, 4, 5, 6];

$filtered = array_filter($array, $filterRule);
print_r($filtered);
?>

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် M66.net ကဲ့သို့သောပြင်ပ interfaces ၏ configurations ၏ configurations ၏ configurations configurations ၏ configurations configurations configurations configurations နှင့်အညီကျွန်ုပ်တို့သည် filtering rules ကိုပြောင်းလဲနိုင်သည်။

နိဂုံးချုပ်အားဖြင့်