PHP တွင်၎င်းသည်အလုပ်လုပ်သောပရိုဂရမ်းမင်းဘာသာစကားမဟုတ်သော်လည်းအချို့သော built-in function tools များများမှတစ်ဆင့်ကျွန်ုပ်တို့သည် ပို. ကြော့ရှင်းသော, array_filter () သည်အလွန်အမင်းသတိမထားမိသော်လည်းအလွန်အစွမ်းထက်သည့်ကိရိယာ function ကိုဖြစ်သည်။ ဤဆောင်းပါးသည်သင်၏ PHP code style တိုးတက်စေရန်နှင့်အလုပ်လုပ်တဲ့ပရိုဂရမ်းမင်းကိုပိုမိုနီးကပ်စွာပြောင်းရွှေ့ရန် array_filter () ကို မည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
array_filter () သည် PHP ရှိ PHP ရှိ PHP တွင်တပ်ဆင်ထားသည့်တပ်ဆင်ထားသောလုပ်ဆောင်မှုများအနက်မှတစ်ခုဖြစ်သည်။ ၎င်းသည် array ၏ element တစ်ခုစီ၏လုပ်ဆောင်မှုတစ်ခုစီ၏လုပ်ဆောင်မှုကိုလုပ်ဆောင်သော callback function ကိုလက်ခံပြီး၎င်းဒြပ်စင်သည် စစ်မှန်သောအမှန်တရား နှင့်အတူဒြပ်စင်များကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်။
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
အကယ် . callback function ကိုမပေးပါက၎င်းသည် 0 0 , Null , False စသဖြင့် မြား နှင့်ညီမျှသောတန်ဖိုးများကိုဖယ်ထုတ်လိမ့်မည်။
Code line ကို သန့်ရှင်းရေးလုပ်ရန်အတွက်မမှန်ကန်တဲ့အကြောင်းအရာများပါ 0 င်သည့်ပုံစံသို့မဟုတ် api မှအချက်အလက်အချို့ကိုကျွန်ုပ်တို့အကြိမ်များစွာလက်ခံရရှိလိမ့်မည်။
$data = [
'username' => 'alice',
'email' => '',
'age' => null,
'subscribe' => false,
];
$cleaned = array_filter($data);
print_r($cleaned);
ထုတ်လုပ်မှု -
Array
(
[username] => alice
)
၎င်းသည် foreach ကို ကိုယ်တိုင်ကိုယ်ကျစာရေးခြင်းထက် ပို. ကြော့ရှင်းသည်။
Callback လုပ်ဆောင်ချက်များကိုဖြတ်သန်းခြင်းဖြင့်ပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိသောအခြေအနေစစ်ထုတ်ခြင်းကိုသင်အကောင်အထည်ဖော်နိုင်သည်။ ဥပမာအားဖြင့်သုံးစွဲသူများအုပ်စုမှတက်ကြွသောသုံးစွဲသူများကို filter လုပ်ပါ။
$users = [
['name' => 'Alice', 'active' => true],
['name' => 'Bob', 'active' => false],
['name' => 'Carol', 'active' => true],
];
$activeUsers = array_filter($users, function ($user) {
return $user['active'];
});
print_r($activeUsers);
output တွင်အဲလစ်နှင့်ကာရယ်လ်သာပါ 0 င်မည်ဖြစ်သည်။
မမှန်ကန်သောသို့မဟုတ်ယာယီအသုံးပြုသူများစွာပါ 0 င်သည့်ဝေးလံသော api ( https://api.m66.net/users ) မှအချက်အလက်များအစုတစ်ခုရရှိသည်ဆိုပါစို့။
$response = file_get_contents('https://api.m66.net/users');
$users = json_decode($response, true);
$validUsers = array_filter($users, function ($user) {
return isset($user['email']) && filter_var($user['email'], FILTER_VALIDATE_EMAIL);
});
သင်မြင်နိုင်သည်မှာ array_filter () သည် "Readator Programming" စတိုင်နှင့်ပိုမိုနီးကပ်စေရန်နှင့် Code ၏ရည်ရွယ်ချက်မှာ "ကွင်းဆက်များနှင့်အခြေအနေများမည်သို့အကောင်အထည်ဖော်ရန်" ကိုအာရုံစိုက်မည့်အစား Code ၏ရည်ရွယ်ချက်မှာရှင်းလင်းပြတ်သားသည်။
array_filter () ကို array_map () နှင့် array_reduce ()) ကိုရေးဆွဲရန် foratical code ကိုရေးရန်အတွက် array_filter () ကိုပေါင်းစပ်နိုင်သည်။ ဥပမာအားဖြင့်, တက်ကြွသောအသုံးပြုသူ၏အသုံးပြုသူအမည်ကို filter လုပ်ပါ။
$usernames = array_map(
fn($user) => $user['name'],
array_filter($users, fn($user) => $user['active'])
);
ရှင်းလင်းပြတ်သားသော semantics နှင့်အတူတိကျနှင့်ကြော့ရှင်း။
array_filter () သည်ပေါ့ပါး။ အစွမ်းထက်ပြီးအသုံးပြုရန်လွယ်ကူသည်။ ကောင်းစွာအသုံးပြုပါက၎င်းသည်သင်၏ PHP ကိုပိုမိုအလုပ်လုပ်စေပြီးဖတ်နိုင်သည်။ ရိုးရာ fonteach နှင့်နှိုင်းယှဉ်လျှင်၎င်းသည် Code of code တစ်ခုတွင် code line တစ်ခုတွင်ရှင်းရှင်းလင်းလင်းဖော်ပြနိုင်သည်။
သင်၏ကုဒ်၏အရည်အသွေးနှင့်စတိုင်ကိုတိုးတက်စေရန်သင်၏နောက်စီမံကိန်းတွင် array_filter () ကို သုံးရန်ကြိုးစားပါ။