လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> array_filter နှင့် array_reduce နှင့်မြင်ကွင်းရွေးချယ်မှုအကြားခြားနားချက်

array_filter နှင့် array_reduce နှင့်မြင်ကွင်းရွေးချယ်မှုအကြားခြားနားချက်

gitbox 2025-05-29

PHP တွင် Array_Fileter နှင့် Array_reduce တို့သည် အပြောင်းအလဲများအတွက်ပြင်ဆင်ခြင်းအတွက်အင်အားကြီးမားသောလုပ်ဆောင်မှုများဖြစ်သည်။ ကွဲပြားခြားနားမှုများနှင့်ဤနှစ်ခုလုပ်ဆောင်ချက်နှစ်ခုအကြားရှိအသုံးပြုမှုဖြစ်ရပ်များကိုနားလည်ခြင်းသည်ပိုမိုကောင်းမွန်သောနှင့်ထိရောက်သောကျင့်ထုံးကိုရေးရန်အထောက်အကူပြုလိမ့်မည်။


1 ။ array_filter ၏အခန်းကဏ်။

Array_Filter ကို Array element တွေကို filter လုပ်ဖို့အသုံးပြုသည်။ ဒါဟာ callback function ကိုမှတဆင့် element တစ်ခုစီကိုစစ်ဆေးသည်။ Reward Value ၏ return valuct နှင့်အတူဒြပ်စင်ကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်။ ပြန်လည်ထူထောင်ရေးနှင့်အတူ ဒြပ် စင်ကိုဖယ်ရှားလိမ့်မည်။ ရိုးရိုးလေးပြောရလျှင်၎င်းသည်အခြေအနေများအပေါ် အခြေခံ. လိုအပ်ချက်များနှင့်ကိုက်ညီသော Array element များကို filter လုပ်ရန်ဖြစ်သည်။

Code Page

 <?php
$arr = [1, 2, 3, 4, 5, 6];

// အားလုံးပင်နံပါတ်များကို filter
$result = array_filter($arr, function($value) {
    return $value % 2 === 0;
});

print_r($result);
?>

ရလဒ်ရလဒ် -

 Array
(
    [1] => 2
    [3] => 4
    [5] => 6
)

မှတ်စု: array_filter သည် element ၏သော့အမည်ကိုမပြောင်းလဲပါ။


2 ။ array_reduce ၏အခန်းကဏ်။

array_reduce ကို array တစ်ခုတစ်ခုတည်းကိုတန်ဖိုးကိုလျှော့ချရန်အသုံးပြုသည်။ Arrray element တွေကို callback function ကိုတဆင့်တဖြည်းဖြည်းတိုးပွားလာတဲ့တန်ဖိုးကိုတိုးပွားစေပြီးစုဆောင်းခြင်း,

Code Page

 <?php
$arr = [1, 2, 3, 4, 5];

// ခင်းကျင်းမှု၏ဒြပ်စင်အားလုံး၏ပေါင်းလဒ်တွက်ချက်ပါ
$sum = array_reduce($arr, function($carry, $item) {
    return $carry + $item;
}, 0);

echo $sum;
?>

ရလဒ်ရလဒ် -

 15

$ သယ်ယူပို့ဆောင်ရေးသည် တဖြည်းဖြည်းတိုးပွားလာသောတန်ဖိုးဖြစ်ပြီး, ပြန်ခေါ်သည်၎င်းကို ဆက်. မွမ်းမံပါလိမ့်မည်။ နောက်ဆုံးပြန်လာမှုသည်လျှော့ချရေးရလဒ်ဖြစ်သည်။


3 ။ နှစ်ခုအကြားမရှိမဖြစ်ကွဲပြားခြားနားခြားနားချက်

အင်္ဂါရပ်များ array_filter array_reduce
အကျိုး ခင်းကျင်းမှုကိုစစ်ထုတ်ပြီးစံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသော subset ကိုပြန်ပို့ပါ "array တစ်ခုတည်းတန်ဖိုးကို" လျှော့ချ "
Value ကိုပြန်သွားပါ တစ်ခုခင်းကျင်း တစ် ဦး စကေးသို့မဟုတ်အရာဝတ်ထု
အဓိကအသုံးပြုမှု ခြွင်းချက် filter ကိုဒြပ်စင် စုစည်းခြင်း, ပေါင်းစည်းခြင်း, စုဆောင်းခြင်း
သော့ချက်သော့အမည်များ ချန်လှပ်ထား အဓိကအမည်များမပါ 0 င်ပါ, တန်ဖိုးများစုဆောင်းခြင်းသည်စိုးရိမ်သည်

4 ။ မြင်ကွင်းအရအသုံးပြုရန်ရွေးချယ်ရန်ရွေးချယ်နည်းလား။

  • Array မှစံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသောဒြပ်စင်များကိုသင်စစ်ဆေးရန်လိုအပ်သည့်အခါ array_fileter ကို သုံးပါ။ ဥပမာအားဖြင့် - အသက် 18 နှစ်ထက်အသက်ကြီးသောသုံးစွဲသူများအားလုံးကိုစစ်ထုတ်ပါ။

  • Array တစ်ခုကိုတန်ဖိုးတစ်ခုအဖြစ်ပြောင်းလဲရန်လိုအပ်သည့်အခါ array_reduce ကို သုံးပါ။ ဥပမာ - စုစုပေါင်းရမှတ်, splice ကြိုးများကိုတွက်ချက်ခြင်းနှင့်စာရင်းအင်းအချက်အလက်များကိုထုတ်လုပ်ပါ။


5 ။ ဥပမာများနှင့်အတူပေါင်းစပ်

အမိန့်ပမာဏများစွာပါ 0 င်သောအမှာစာခင်းကျင်းရှိသည်ဆိုပါစို့။

 <?php
$orders = [120, 250, 90, 300, 60];

// အဆိုပါ filtered ပမာဏထက်သာ။ ကြီးမြတ်သည်100အမိန့်
$filteredOrders = array_filter($orders, function($amount) {
    return $amount > 100;
});

// 计算筛选后အမိန့်总金额
$total = array_reduce($filteredOrders, function($carry, $amount) {
    return $carry + $amount;
}, 0);

echo "ထက်သာခြင်း100အမိန့်总金额是:" . $total;
?>

အထက်ပါဥပမာအားဖြင့် array_filter သည် အခြေအနေများနှင့်ကိုက်ညီသောအမိန့်များကိုပထမဆုံးစစ်ထုတ်သည် ကို ရှင်းရှင်းလင်းလင်းမြင်တွေ့နိုင်သည်။ နှစ် ဦး စလုံးအတူတကွအသုံးပြုသောအခါ array ဒေတာပြောင်းလွယ်ပြင်လွယ် proxted နိုင်ပါတယ်။


အကျဉ်းချုပ်

  • Array_filter သည် စီစစ်ခြင်းဒြပ်စင်များကို စစ်ထုတ်ခြင်း,

  • array_reduce သည် "compression လုပ်ခြင်း" ကို " ချုံ့ ခြင်း" ကိုအာရုံစိုက်သည်။

  • သင်၏လိုအပ်ချက်များနှင့်အညီရွေးပါ။