လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> foreach အစားထိုးရန် array_filter () ပိုမိုထိရောက်ပါသလား။

foreach အစားထိုးရန် array_filter () ပိုမိုထိရောက်ပါသလား။

M66 2025-06-03

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်အချို့သောအခြေအနေများနှင့်ကိုက်ညီသောအရာများကိုစစ်ဆေးရန်လိုအပ်လေ့ရှိသည်။ အသုံးအများဆုံးနည်းလမ်းတစ်ခုမှာ foreach foreach ကိုစစ်ထုတ်ပြန်ချက်များနှင့်အတူအသုံးပြုရန်ဖြစ်သည်။ သို့သော် PHP Standard Library သည်ဤလိုအပ်ချက်အတွက်ဒီဇိုင်းပြုလုပ်ထားသော ARRAY_FILTER () ကိုပိုမိုတိကျသောလုပ်ဆောင်မှုကိုပေးသည်။ ထို့နောက်မေးခွန်းမှာ -

1 ။ အခြေခံအသုံးပြုမှုနှိုင်းယှဉ်

ကျွန်ုပ်တို့တွင်သုံးစွဲသူစာရင်းတွင်အသုံးပြုသူစာရင်းရှိသည်ဆိုပါစို့။ အသက် 18 နှစ်အောက်သုံးစွဲသူများကိုစစ်ထုတ်လိုသည်ဆိုပါစို့။

fonteach ကိုဘယ်လိုသုံးရမလဲ

 $users = [
    ['name' => 'Alice', 'age' => 22],
    ['name' => 'Bob', 'age' => 17],
    ['name' => 'Charlie', 'age' => 30],
];

$adults = [];
foreach ($users as $user) {
    if ($user['age'] > 18) {
        $adults[] = $user;
    }
}

array_filter ကိုဘယ်လိုသုံးရမလဲ

 $users = [
    ['name' => 'Alice', 'age' => 22],
    ['name' => 'Bob', 'age' => 17],
    ['name' => 'Charlie', 'age' => 30],
];

$adults = array_filter($users, function($user) {
    return $user['age'] > 18;
});

Code Readability အရ array_filter () သည်အထူးသဖြင့်ယုတ္တိဗေဒရိုးရှင်းသည့်အခါတွင် array_filter () သည် ပို. ကျစ်လစ်သိပ်သည်းသည်။

2 ။ စွမ်းဆောင်ရည်နှိုင်းယှဉ်

နှစ်ခုနှစ်ခုအကြားစွမ်းဆောင်ရည်ကွဲပြားခြားနားမှုများကိုရိုးရှင်းသောစစ်ဆေးမှုဇာတ်ညွှန်းဖြင့်အချက်အလက်အမြောက်အများဖြင့်နှိုင်းယှဉ်ကြပါစို့။

 $users = [];
for ($i = 0; $i < 100000; $i++) {
    $users[] = ['name' => "User$i", 'age' => rand(10, 50)];
}

// အသုံးပြု foreach
$start = microtime(true);
$adults1 = [];
foreach ($users as $user) {
    if ($user['age'] > 18) {
        $adults1[] = $user;
    }
}
$time1 = microtime(true) - $start;

// အသုံးပြု array_filter
$start = microtime(true);
$adults2 = array_filter($users, function($user) {
    return $user['age'] > 18;
});
$time2 = microtime(true) - $start;

echo "foreach အချိန်ကုန်စေသော: {$time1} စက်ဏန့်\n";
echo "array_filter အချိန်ကုန်စေသော: {$time2} စက်ဏန့်\n";

စမ်းသပ်မှုရလဒ်များ (ကိရိယာအနေဖြင့်ကွဲပြားနိုင်သည်)

 foreach အချိန်ကုန်စေသော: 0.025 စက်ဏန့်
array_filter အချိန်ကုန်စေသော: 0.027 စက်ဏန့်

တွေ့မြင်နိုင်သည့်အတိုင်း စွမ်းဆောင်ရည်ကွာခြားချက်သည်အနည်းဆုံးဖြစ်ပါသည် ။ အချို့ကိစ္စများတွင်ပင် fonteach သည် အနည်းငယ်ပိုမိုမြန်ဆန်သည်

3 ။ အသုံးပြုရန်အကြံပြုချက်များ

  • array_filter () ကိုအသုံးပြုသောနေရာကိုအကြံပြုထားသောအခြေအနေများ -

    • အခြေအနေများမှာရိုးရှင်းပြီးကုဒ်သည်ရှင်းလင်းသောဖြစ်သည်။

    • code ကို functional စတိုင်ဖြင့်ရေးချင်သည်။

    • ဒေတာပြုပြင်ခြင်းကွင်းဆက်ကိုအခြား Array_map () ) နှင့်အသုံးပြုရန်လိုအပ်သည်။

  • အကြံပြုသည့်အခြေအနေများ fonteach:

    • ပိုမိုမြင့်မားသောစွမ်းဆောင်ရည်နှင့်အဆုံးစွန်ပိုကောင်းအောင်လိုအပ်ပါတယ်။

    • ခြွင်းချက်ကောင်းသောယုတ္တိဗေဒသည်ရှုပ်ထွေးသောသို့မဟုတ်ကွင်းဆက်ပြတ်တောက်ရန်လိုအပ်သည်။

    • အပိုဆောင်းစစ်ဆင်ရေးများ (ဥပမာရည်ညွှန်းချက်ခြင်းစသဖြင့်) မူရင်းခင်းကျင်းရန်လိုအပ်သည်။

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

အချို့သောကိစ္စရပ်များတွင် Foreneach သည် အနည်းငယ်ပိုကောင်းသည်မှာ array_filter () သည် အထူးသဖြင့် Code Readability နှင့်ထိန်းသိမ်းမှုကိုရှာဖွေသည့်အခါ ပို. ကြော့ရှင်းသောဖြေရှင်းနည်းကိုပေးသည်။ စွမ်းဆောင်ရည်အရနှစ်ခုအကြားခြားနားချက်မှာအနည်းငယ်မျှသာဖြစ်ပါသည်

သငျသညျ code ကိုနားလည်ရန်နှင့်ထိန်းသိမ်းရန်ပိုမိုလွယ်ကူစေရန်ပိုမိုလွယ်ကူစေလိုလျှင်, array_filter () !