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