PHP လည်ပတ်မှုတွင် မလိုအပ်သော array အလျားတွက်ချက်မှု
နံပါတ်များပါသော array တစ်ခုကို ပေးထားသည်ဆိုပါစို့-
<?php
$arr = [1, 2, 3, 4, 5];
?>
Array ၏ element တစ်ခုစီကို နှစ်ထပ်ကိန်းတင်လိုက်ကြပါစို့။ ဆိုလိုသည်မှာ ကျွန်ုပ်တို့တွင်
တူညီသော array $arr ရှိရမည်၊ သို့သော် ဂဏန်းများကို နှစ်ထပ်ကိန်းတင်ထားသည်နှင့်။
ထိုသို့သောအခြေအနေတွင် သာမန် foreach လည်ပတ်မှုက မသင့်တော်ပါ၊
array အတွက် သာမန် for လည်ပတ်မှုကို ဤကဲ့သို့ လိုအပ်ပါသည်-
<?php
$arr = [1, 2, 3, 4, 5];
for ($i = 0; $i < count($arr); $i++) {
$arr[$i] = $arr[$i] * $arr[$i]; // array ၏ element တစ်ခုစီကို ပြောင်းလဲခြင်း
}
var_dump($arr);
?>
ဤကုဒ်တွင် ဘာမှားနေသနည်း။ ပြဿနာမှာ
count($arr) သည် လည်ပတ်မှုတိုင်းတွင် အဓိပ္ပာယ်မရှိဘဲ တွက်ချက်နေခြင်းပင်။ အဘယ်ကြောင့်ဆိုသော်
Array ၏ အလျားသည် လည်ပတ်မှုအတွင်း မပြောင်းလဲပါ၊ မဟုတ်လော။
အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ရန်အတွက် Array ၏ အလျားကို တွက်ချက်မှုကို သီးခြားကိန်းရှင်ထဲသို့ ထုတ်ယူကြပါမည်-
<?php
$arr = [1, 2, 3, 4, 5];
$len = count($arr); // အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ခြင်း
for ($i = 1; $i < $len; $i++) {
$arr[$i] = $arr[$i] * $arr[$i];
}
var_dump($arr);
?>
အောက်ပါကုဒ်ကို အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ပါ-
<?php
$arr = [1, 2, 2, 4, 5];
for ($i = 1; $i < count($arr); $i++) {
if ($arr[$i - 1] === $arr[$i]) {
echo $arr[$i] . '<br>';
}
}
?>