PHP လည်ပတ်မှုတွင် မလိုအပ်သော array အလျားတွက်ချက်မှု

နံပါတ်များပါသော array တစ်ခုကို ပေးထားသည်ဆိုပါစို့-

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

Array ၏ element တစ်ခုစီကို နှစ်ထပ်ကိန်းတင်လိုက်ကြပါစို့။ ဆိုလိုသည်မှာ ကျွန်ုပ်တို့တွင် တူညီသော array $arr ရှိရမည်၊ သို့သော် ဂဏန်းများကို နှစ်ထပ်ကိန်းတင်ထားသည်နှင့်။

ထိုသို့သောအခြေအနေတွင် သာမန် foreach လည်ပတ်မှုက မသင့်တော်ပါ၊ array အတွက် သာမန် for လည်ပတ်မှုကို ဤကဲ့သို့ လိုအပ်ပါသည်-

php<?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<?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);
?>
Задание 1

အောက်ပါကုဒ်ကို အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ပါ-

php<?php
  $arr = [1, 2, 2, 4, 5];
  
  for ($i = 1; $i < count($arr); $i++) {
    if ($arr[$i - 1] === $arr[$i]) {
      echo $arr[$i] . '<br>';
    }
  }
?>