လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_filter () နှင့် array_colum () နှင့်အတူနှစ်ခုရှုထောင် arrays ကိုလျင်မြန်စွာ process လုပ်ပါ။

array_filter () နှင့် array_colum () နှင့်အတူနှစ်ခုရှုထောင် arrays ကိုလျင်မြန်စွာ process လုပ်ပါ။

M66 2025-05-14

PHP တွင်နှစ်ရှုထောင်ခင်းကျင်းမှုများကိုပြုပြင်ခြင်းနှင့်စစ်ခြင်းများသည်အထူးသဖြင့်ဒေတာပမာဏကြီးမားသည့်အခါဘုံလုပ်ငန်းဖြစ်သည်။ ကံကောင်းထောက်မစွာပင် PHP သည်၎င်းကိုထိရောက်သောနည်းဖြင့်ကူညီနိုင်ရန်အလွန်အသုံးဝင်သော built-in function များကိုထောက်ပံ့ပေးသည်။ ဒီဆောင်းပါးမှာ array_filter () နှင့် array_column () functions ကိုအာရုံစိုက်ပြီးနှစ်ဖက်ခြားရေး arrays တွေအတွက်အချက်အလက်တွေကိုမြန်မြန်ဆန်ဆန်လုပ်ဆောင်နိုင်အောင်ဘယ်လိုပေါင်းစပ်နိုင်မလဲဆိုတာပြသပါလိမ့်မယ်။

1 ။ array_column () function ကိုမိတ်ဆက်

Multidimensional Array မှကော်လံ၏တန်ဖိုးကိုထုတ်ယူရန် array_column () function ကိုအသုံးပြုသည်။ 2D ခင်းကျင်းမှုမှသတ်သတ်မှတ်မှတ်ကော်လံ၏တန်ဖိုးများကိုထုတ်ယူခြင်းသည်အလွန်ကောင်းသည်။ ဤလုပ်ဆောင်ချက်၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_column(array $array, mixed $column_key, mixed $index_key = null): array
  • $ Array : နှစ်ရှုထောင်ခင်းကျင်း။

  • $ column_key : ကော်လံ၏သော့ကိုထုတ်ယူရန်။

  • $ index_key : ပြန်လာသောခင်းကျင်းမှု၏အကြောင်းအရာအရင်းကိုသတ်မှတ်သည့် optional parameter သည်။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့တွင်နှစ်ဖက်မြင်ကွင်းခင်းကျင်းမှုတစ်ခုရှိသည်။

 $users = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net'],
];

အသုံးပြုသူများအားလုံး၏ အမည် ကော်လံကိုထုတ်ယူလိုပါကကျွန်ုပ်တို့ array_column () ကို သုံးနိုင်သည်။

 $names = array_column($users, 'name');
print_r($names);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

2 ။ array_filter () function ကိုမိတ်ဆက်

အဆိုပါ array_filter () function ကိုသတ်မှတ်ထားသောအခြေအနေများနှင့်ကိုက်ညီသော array နှင့်ပြန်ပို့သောဒြပ်စင်များတွင် filter များအတွက်အသုံးပြုသည်။ အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 array_filter(array $array, callable $callback, int $mode = 0): array
  • $ array : input array ။

  • $ callback : callback function, array ၏ element တစ်ခုစီကိုစစ်ကြောစီရင်ရန်အသုံးပြုသည်။

  • $ mode : callback function သည်မည်သို့အလုပ်လုပ်သည်ကိုဆုံးဖြတ်သည့် optional parameter သည်များသောအားဖြင့်ပုံမှန်တန်ဖိုး 0 ကိုအသုံးပြုသည်ကိုဆုံးဖြတ်သည့်ရွေးချယ်စရာ parameter သည်။

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

 $filteredUsers = array_filter($users, function($user) {
    return strpos($user['email'], 'm66.net') !== false;
});
print_r($filteredUsers);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Alice
            [email] => alice@m66.net
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
            [email] => bob@m66.net
        )

    [2] => Array
        (
            [id] => 3
            [name] => Charlie
            [email] => charlie@m66.net
        )
)

3 ။ array_column () နှင့် array_filter () ကိုပေါင်းစပ်ပါ

တခါတရံတွင်ကျွန်ုပ်တို့သည်တိကျသောကော်လံများကိုတစ်ချိန်တည်းတွင်ထုတ်ယူပြီး၎င်းတို့ကို filter လုပ်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, M66.net ဒိုမိန်းအမည်အားလုံး၏အီးမေးလ်လိပ်စာများကိုကျွန်ုပ်တို့စစ်ဆေးလိုပြီးဤအသုံးပြုသူများ၏အမည်များကိုသာထုတ်ယူသည်။ ကျွန်ုပ်တို့သည် array_filter () နှင့် array_colum ကို ပေါင်းစပ်နိုင်သည်။

 $filteredEmails = array_filter($users, function($user) {
    return strpos($user['email'], 'm66.net') !== false;
});

$names = array_column($filteredEmails, 'name');
print_r($names);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

4 ။ ပေါင်းစပ်အသုံးပြုမှု၏အမှန်တကယ်ကိစ္စများ

ကျွန်ုပ်တို့တွင် API မှရရှိသောအသုံးပြုသူအချက်အလက်များစာရင်းရှိသည်ဆိုပါစို့။ အသုံးပြုသူတစ် ဦး စီ၏အချက်အလက်များတွင်အီးမေးလ်လိပ်စာတစ်ခုပါရှိသည်ဆိုပါစို့။ အသုံးပြုသူများအားလုံးကို M66.net domain namet name ကို အသုံးပြု. သုံးစွဲသူ၏အမည်နှင့်အီးမေးလ်လိပ်စာကိုထုတ်ယူလိုပါသည်။

ပထမ ဦး စွာကျွန်ုပ်တို့သည် API မှတဆင့်ဒေတာများကိုရယူပြီး၎င်းကို $ users array တွင်သိမ်းဆည်းထားသည်။

 $users = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net'],
    ['id' => 4, 'name' => 'David', 'email' => 'david@example.com'],
    ['id' => 5, 'name' => 'Eve', 'email' => 'eve@m66.net'],
];

နောက်အီးမေးလ်တွင် M66.net တွင်ပါ 0 င်သောအသုံးပြုသူများကို filter လုပ်ရန် array_filter () ကို အသုံးပြု. array_column () ကို သုံးပါ။

 $filteredUsers = array_filter($users, function($user) {
    return strpos($user['email'], 'm66.net') !== false;
});

$names = array_column($filteredUsers, 'name');
$emails = array_column($filteredUsers, 'email');

print_r($names);
print_r($emails);

output ကိုဖြစ်လိမ့်မည်:

 Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
    [3] => Eve
)

Array
(
    [0] => alice@m66.net
    [1] => bob@m66.net
    [2] => charlie@m66.net
    [3] => eve@m66.net
)

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်စံနှုန်းများနှင့်ကိုက်ညီသောအသုံးပြုသူများကိုစစ်ထုတ်ရုံသာမကသူတို့၏အမည်များနှင့်အီးမေးလ်လိပ်စာများကိုလည်းထုတ်ယူသည်။

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