လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_filter နှင့် array_map သိကောင်းစရာများ

array_filter နှင့် array_map သိကောင်းစရာများ

gitbox 2025-05-28

PHP တွင် array_filter နှင့် array_map သည် များသောအားဖြင့် အသုံးပြု. အသုံးပြု. များသောအားဖြင့် အသုံးပြု. အစွမ်းထက်သောခင်းကျင်းရေးလုပ်ဆောင်ချက်များဖြစ်သည်။ သူတို့တစ်တွေတစ်ယောက်တည်းသုံးတဲ့အခါသူတို့ကိုယ်ပိုင်အသုံးပြုမှုရှိတယ်, ဒါပေမဲ့သူတို့ပေါင်းစပ်လိုက်ရင် code ရဲ့ရိုးရှင်းမှုနဲ့ထိရောက်မှုကိုကျွန်တော်တို့အများကြီးတိုးတက်အောင်လုပ်နိုင်ပါတယ်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခု၏အသုံးပြုမှုကိုအသေးစိတ်ဖော်ပြရန်နှင့်၎င်းတို့ပေါင်းစပ်မှုအတွက်လက်တွေ့ကျသောအကြံပေးချက်များနှင့်အကောင်းဆုံးအလေ့အကျင့်များကိုလည်းမျှဝေပါမည်။


1 ။ Array_filter နှင့် Array_map ကိုနားလည်ပါ

  • 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);
    

2 ။ အဘယ်ကြောင့်ပေါင်းစပ်အသုံးပြု?

  • filtering ပြီးနောက်မြေပုံ - အခြေအနေများနှင့်ကိုက်ညီသောဒြပ်စင်များကို filter လုပ်ရန် array_filter ကို အသုံးပြု. array_map ကို သုံးပါ။

  • Apping ပြီးနောက် filter : filter: array eleme format ကိုပြောင်းလဲရန် array_map ကို သုံးပါ, ထို့နောက်လိုအပ်ချက်များနှင့်ကိုက်ညီသောရလဒ်များကို filter လုပ်ရန် array_filter ကို သုံးပါ။

  • တစ်ကြိမ်တည်းကွင်းဆက်ခွဲစိတ်ကုသမှု - တိကျသောကွင်းဆင်းရေးကွင်းဆက်ကိုရေးခြင်း,


3 ။ လက်တွေ့ကျသောအကြံပြုချက်များနှင့်ဥပမာများ

သိကောင်းစရာများ 1: filter 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 ကို အသုံးပြုပါ။


သိကောင်းစရာများ 2. ကွင်းဆက်ခေါ်ဆိုမှုများ,

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);
?>

သိကောင်းစရာများ 3: filter filter ကို filter လုပ်ပါ, data format ကိုသုံးပါ, ပြီးတော့ format နဲ့ကိုက်ညီတဲ့ Element တွေကို filter လုပ်ပါ

 <?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);
?>

သိကောင်းစရာများ 4: သော့ချက်အမည်များဖြင့် filter

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);
?>

4 ။ အကျဉ်းချုပ်

  • မလိုအပ်သောထုတ်လုပ်မှုကိုလျှော့ချရန်ပထမ ဦး ဆုံးစစ်ထုတ်ပါ။

  • မြေပုံပထမနှင့်စစ်ထုတ်ပါ။ အချက်အလက်ပုံစံသို့မဟုတ်ဖွဲ့စည်းပုံသည်လွယ်ကူသော 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);
?>