PHP တွင် array_filter နှင့် array_map သည် များသောအားဖြင့် အသုံးပြု. အသုံးပြု. များသောအားဖြင့် အသုံးပြု. အစွမ်းထက်သောခင်းကျင်းရေးလုပ်ဆောင်ချက်များဖြစ်သည်။ သူတို့တစ်တွေတစ်ယောက်တည်းသုံးတဲ့အခါသူတို့ကိုယ်ပိုင်အသုံးပြုမှုရှိတယ်, ဒါပေမဲ့သူတို့ပေါင်းစပ်လိုက်ရင် code ရဲ့ရိုးရှင်းမှုနဲ့ထိရောက်မှုကိုကျွန်တော်တို့အများကြီးတိုးတက်အောင်လုပ်နိုင်ပါတယ်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခု၏အသုံးပြုမှုကိုအသေးစိတ်ဖော်ပြရန်နှင့်၎င်းတို့ပေါင်းစပ်မှုအတွက်လက်တွေ့ကျသောအကြံပေးချက်များနှင့်အကောင်းဆုံးအလေ့အကျင့်များကိုလည်းမျှဝေပါမည်။
array_filter
ဒီ function ကို array element တွေကို filter လုပ်ဖို့အသုံးပြုသည်။ Callback function တစ်ခုက element တစ်ခုစီသည်အခြေအနေနှင့်ကိုက်ညီမှုရှိမရှိဆုံးဖြတ်သည်။
$filtered = array_filter($array, function($item) {
return $item > 10; // filter ထက်သာ။ ကြီးမြတ်သည်10ဒြပ်
});
array_map
ဤလုပ်ဆောင်မှုသည်ခင်းကျင်းမှု၏ element တစ်ခုစီ၏တူညီသော callback operation ကိုလုပ်ဆောင်ရန်အသုံးပြုသည်။
$mapped = array_map(function($item) {
return $item * 2; // တစ်ခုချင်းစီကို element ကိုမြှောက်ပါ2
}, $array);
filtering ပြီးနောက်မြေပုံ - အခြေအနေများနှင့်ကိုက်ညီသောဒြပ်စင်များကို filter လုပ်ရန် array_filter ကို အသုံးပြု. array_map ကို သုံးပါ။
Apping ပြီးနောက် filter : filter: array eleme format ကိုပြောင်းလဲရန် array_map ကို သုံးပါ, ထို့နောက်လိုအပ်ချက်များနှင့်ကိုက်ညီသောရလဒ်များကို filter လုပ်ရန် array_filter ကို သုံးပါ။
တစ်ကြိမ်တည်းကွင်းဆက်ခွဲစိတ်ကုသမှု - တိကျသောကွင်းဆင်းရေးကွင်းဆက်ကိုရေးခြင်း,
<?php
$numbers = [1, 5, 12, 18, 7, 25];
// ထက်သာ။ ကြီးမြတ်ထွက်စစ်ထုတ်ပါ10တောလည်ရေများ
$filtered = array_filter($numbers, function($num) {
return $num > 10;
});
// 再对过滤后တောလည်ရေများ做平方操作
$squared = array_map(function($num) {
return $num * $num;
}, $filtered);
print_r($squared);
?>
ထုတ်လုပ်မှု -
Array
(
[2] => 144
[3] => 324
[5] => 625
)
ဤဥပမာတွင် array_map ကို အသုံးမ 0 င်သောအလုပ်မှရှောင်ရှားရန်အခြေအနေများနှင့်မကိုက်ညီသောဒြပ်စင်များကိုဖယ်ရှားရန် array_filter ကို အသုံးပြုပါ။
PHP 7.4+ သည် arrow function များကိုထောက်ပံ့သည်။
<?php
$numbers = [1, 5, 12, 18, 7, 25];
$result = array_map(
fn($num) => $num * $num,
array_filter($numbers, fn($num) => $num > 10)
);
print_r($result);
?>
<?php
$urls = [
'http://example.com',
'ftp://fileserver.com',
'https://secure.com',
];
// ပထမ ဦး ဆုံးစာလုံးအသေး protocol ကိုပြောင်းပါ
$lowercased = array_map(fn($url) => strtolower($url), $urls);
// နောက်တဖန်စစ်ထုတ်ပါhttpသဘောတူညီချက်၏အစURL
$httpUrls = array_filter($lowercased, fn($url) => str_starts_with($url, 'http'));
print_r($httpUrls);
?>
array_filter array_filter_use_key ၏ဒုတိယ pareter သည် key name အရ filter ကို filter လုပ်ရန်အသုံးပြုနိုင်ပြီးတန်ဖိုးကို array_map နှင့်ပေါင်းစပ်ပါ။
<?php
$data = [
'name' => 'Alice',
'age' => 25,
'email' => '[email protected]',
'score' => 92,
];
// Filter သည်သော့အမည်ကိုကြိုးအဖြစ်သာသိမ်းဆည်းထားပြီးအရှည်သည်ထက်သာ။ ကြီးမြတ်သည်3ဒြပ်
$filtered = array_filter($data, fn($key) => strlen($key) > 3, ARRAY_FILTER_USE_KEY);
// တန်ဖိုးများကို string ကို format နဲ့ပြောင်းပါ
$mapped = array_map(fn($value) => (string)$value, $filtered);
print_r($mapped);
?>
မလိုအပ်သောထုတ်လုပ်မှုကိုလျှော့ချရန်ပထမ ဦး ဆုံးစစ်ထုတ်ပါ။
မြေပုံပထမနှင့်စစ်ထုတ်ပါ။ အချက်အလက်ပုံစံသို့မဟုတ်ဖွဲ့စည်းပုံသည်လွယ်ကူသော filtering အတွက်ပထမ ဦး ဆုံး ဦး စွာစုစည်းနိုင်သည်။
သန့်ရှင်းရေးကုဒ်ရေးရန် arrow function များနှင့်ကွင်းဆက်ခေါ်ဆိုမှုများကိုသုံးပါ။
သော့ချက်အမည်များကို filter လုပ်ရန် array_filter_use_key နှင့်ပေါင်းစပ်ထားသည်။
ပေါင်းစပ်ထားသောအသုံးပြုမှုသည်ကုဒ်ဆိုင်ရာယုတ္တိဗေဒရှင်းလင်းရေးကိုရှင်းလင်းပါ, ရှုပ်ထွေးသောကွင်းများကိုရှောင်ရှားပြီးကုဒ်ပြန်သုံးသပ်မှုနှင့်စာဖတ်နိုင်မှုကိုတိုးတက်အောင်လုပ်ပါ။
ဤလုပ်ဆောင်ချက်နှစ်ခု၏ကျွမ်းကျင်မှုများကိုပေါင်းစပ်ခြင်းနှင့်အသုံးပြုခြင်းကိုကျွမ်းကျင်သည်။
<?php
// ကောင်းသောအသေးစိတ်ဥပမာ:အချည်းနှီးသောတန်ဖိုးများထွက် filter,string ကိုစာလုံးအကြီးသို့ပြောင်းပါ,ရလဒ်ပြန်လာရလဒ်
$data = ['apple', '', 'Banana', null, 'Cherry'];
$result = array_map(
fn($item) => strtoupper($item),
array_filter($data, fn($item) => !empty($item))
);
print_r($result);
?>