လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_filter () Associative Arrays ကိုဘယ်လိုကိုင်တွယ်ရမလဲ

array_filter () Associative Arrays ကိုဘယ်လိုကိုင်တွယ်ရမလဲ

M66 2025-05-17

PHP တွင် array_filter () function သည် array element များကို filtering များအတွက်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် array အတွင်းရှိ element များကို incoming callback function ကို အခြေခံ. အခြေအနေများနှင့်ကိုက်ညီသောအရာများသာရှိသည်။ အကယ်. callback function ကိုမကုန်သေးပါက array_filter () သည် မှားယွင်းသော တန်ဖိုးနှင့်အတူဒြပ်စင်ကိုဖျက်ပစ်လိမ့်မည်။ Associative Arrays များကိုပြုပြင်သည့်အခါ array_filter () သည် ရှုပ်ထွေးသော data filtering operations များကိုအလွန်အဆင်ပြေစွာလုပ်ဆောင်နိုင်သည်။ Associative Arrays ကိုကိုင်တွယ်ရန် array_filter () ကို မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ array_filter ၏အခြေခံ syntax ()

 array array_filter ( array $array , callable $callback = ? , int $mode = 0 ) : array
  • $ array : filtered ခံရဖို့ array တစ်ခု။

  • $ callback : filtering များအတွက် callback function ကို။ အကယ်. callback function ကိုမကုန်တော့ပါက မှားယွင်းသော တန်ဖိုးရှိသောဒြပ်စင်ကိုပုံမှန်အားဖြင့်ဖျက်ပစ်လိမ့်မည်။

  • $ mode : callback function ကို၏ parameter သည် array element ၏တန်ဖိုးသို့မဟုတ်သော့ချက်တန်ဖိုးရှိ pair တစုံ၏တန်ဖိုးကိုဆုံးဖြတ်သည်ဖြစ်စေဆုံးဖြတ်သည်။ array_filter_use_key_key (default value), array_filter_use_both (သော့ချက်များနှင့်တန်ဖိုးများကိုဖြတ်သန်းပါ) ။

2 ။ array_filter () Associative Arrays အလုပ်ကိုင်တွယ်သည်

PHP တွင် Associative Array ၏သော့များသည်များသောအားဖြင့်ကြိုးများသို့မဟုတ်နံပါတ်များဖြစ်ပြီးတွဲတန်ဖိုးများသည်သင်သိမ်းဆည်းလိုသောအချက်အလက်များဖြစ်သည်။ Array_filter () ကို တန်ဖိုးများ, သော့များ, သော့များနှင့်တန်ဖိုးများအပေါ် အခြေခံ. စစ်ထုတ်နိုင်သည်။

ဥပမာ 1. တန်ဖိုးများအပေါ် အခြေခံ. စစ်ထုတ်ခြင်း

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

 <?php
$users = [
    "user1" => ["name" => "Alice", "age" => 25],
    "user2" => ["name" => "Bob", "age" => 17],
    "user3" => ["name" => "Charlie", "age" => 30]
];

$filtered_users = array_filter($users, function($user) {
    return $user["age"] >= 18;  // အသက်သာကြီးသည်သို့မဟုတ်ညီမျှသည် 18 အသုံးပြုသူများ
});

print_r($filtered_users);
?>

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

 Array
(
    [user1] => Array
        (
            [name] => Alice
            [age] => 25
        )
    [user3] => Array
        (
            [name] => Charlie
            [age] => 30
        )
)

အပေါ်ကဥပမာမှာ array_filter () function ဟာ $ array array ကိုဖြတ်ပြီး 18 ထက်ငယ်တဲ့အသုံးပြုသူတွေကိုစစ်ထုတ်ဖို့ callback function ကိုသုံးတယ်။

ဥပမာ 2 - သော့ချက်အပေါ် အခြေခံ. စစ်ထုတ်ခြင်း

အချို့သောသုံးစွဲသူများထံမှသတင်းအချက်အလက်များကိုဖျက်ခြင်းကဲ့သို့သောအချို့သောသော့များကို အခြေခံ. Acciative Array များကိုကျွန်ုပ်တို့စစ်ဆေးလိုသည်ဆိုပါစို့။

 <?php
$users = [
    "user1" => ["name" => "Alice", "age" => 25],
    "user2" => ["name" => "Bob", "age" => 17],
    "user3" => ["name" => "Charlie", "age" => 30]
];

$filtered_users = array_filter($users, function($user, $key) {
    return $key != "user2";  // အဆိုပါဖယ်ထုတ်သော့ဖြစ်ပါတယ် user2 အသုံးပြုသူများ
}, ARRAY_FILTER_USE_BOTH);

print_r($filtered_users);
?>

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

 Array
(
    [user1] => Array
        (
            [name] => Alice
            [age] => 25
        )
    [user3] => Array
        (
            [name] => Charlie
            [age] => 30
        )
)

ဤဥပမာတွင် array_filter () သည် array_filter_use_usus_uboth mode ကိုအသုံးပြုသည်။ ဤနည်းအားဖြင့်သော့ချက်ပေါ်မူတည်ပြီးဒြပ်စင်ကိုဆက်လက်ထိန်းသိမ်းရန်ဆုံးဖြတ်နိုင်သည်။

3 ။ array_filter () ဖြေရှင်းနိုင်သည့်ပြနာများ

3.1 ။ Array တွင်မမှန်ကန်သောတန်ဖိုးများကိုရှင်းလင်းပါ

ဒေတာများကိုလုပ်ဆောင်သည့်အခါ Null တန်ဖိုး, Null , မှားယွင်းသော , ဤမမှန်ကန်သောအချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ရန် array_filter () ကို သုံးပါ။

ဥပမာအားဖြင့်, array တစ်ခုတွင် မှားယွင်းသော တန်ဖိုးရှိသော element တစ်ခုကိုဖျက်ပါ။

 <?php
$array = [0, 1, false, 2, "", null, 3];
$filtered_array = array_filter($array);  // အားလုံးပုံမှန်အားဖြင့်ဖျက်ပစ်လိမ့်မည် `false` အဘိုး
print_r($filtered_array);
?>

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

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

3.2 ။ တိကျတဲ့စံနှုန်းများနှင့်ကိုက်ညီသော filter ကို filter

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

3.3 ။ ကုဒ်၏ readability ကိုတိုးတက်အောင်လုပ်ပါ

ရှုပ်ထွေးသော data filtering ယုတ္တိဗေဒကို array_filter () မှတဆင့်သန့်ရှင်းသောကုဒ်ဖြင့်အကောင်အထည်ဖော်နိုင်သည်။ foreach loops ကိုအသုံးပြုခြင်းအချက်အလက်များကိုကိုယ်တိုင်စစ်ထုတ်ရန်နှင့်နှိုင်းယှဉ်လျှင် array_filter () သည် code ကိုရှင်းလင်းရန်ပိုမိုလွယ်ကူစေသည်။

4 ။ URL-Related data ကိုလုပ်ငန်းစဉ်

ကျွန်ုပ်တို့တွင် URL လိပ်စာများပါ 0 င်သော array တစ်ခုရှိပြီးသတ်မှတ်ထားသောဒိုမိန်းအမည် (ဥပမာ M66.net ) ပါ 0 င်သည့် URL များကို filter လုပ်လိုပါသည်။ ကျွန်ုပ်တို့သည်ဤလုပ်ငန်းကိုပြီးမြောက်ရန် Parse_Url () နှင့်ပူးပေါင်းရန် array_filter () ကို သုံးနိုင်သည်။

 <?php
$urls = [
    "http://example.com/page1",
    "https://m66.net/page2",
    "https://m66.net/page3",
    "http://anotherdomain.com/page4"
];

$filtered_urls = array_filter($urls, function($url) {
    $parsed_url = parse_url($url);
    return isset($parsed_url['host']) && $parsed_url['host'] === 'm66.net';
});

print_r($filtered_urls);
?>

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