PHP တွင် Array အဖြစ်ပြောင်းလဲခြင်းကို အကောင်းဆုံးချွေတာခြင်း

တစ်ခုခုလုပ်ဖို့ စာကြောင်းကို array အဖြစ် အမြဲတမ်းခွဲဖို့ မလိုပါဘူး။

ဥပမာကို ကြည့်ရအောင်။ နောက်ဥပမာတွင် ကုဒ်ရေးသူသည် စာကြောင်းထဲတွင် 3 ဂဏန်းပါမပါ စစ်ဆေးနေသည်။

php<?php
  $str = '12345';
  $arr = explode('', $str); // array အဖြစ်ခွဲပါမည်
  
  if (in_array(3, $arr)) {
    echo 'ရှိတယ်';
  } else {
    echo 'မရှိဘူး';
  }
?>

ရေးသူက ကောင်းတယ် - သူ့ကိုယ်ပိုင် ယာယီဖြေရှင်းချက်တွေ ရေးမယ့်အစား PHP ရဲ့ နဂိုရ်ပါလာတဲ့ function တွေကို သုံးတယ်။

ဒါပေမယ့် ကုဒ်က အကောင်းဆုံးမဟုတ်သေးပါ။ ဒီမှာ စာကြောင်းကို array အဖြစ်ခွဲဖို့ မလိုပါ။ အဘယ်ကြောင့်ဆိုသော် စာကြောင်းထဲရှာဖွေရန် အဆင်သင့်ဖြစ်သော strpos function ရှိသည်။

php<?php
  $str = '12345';
  
  if (strpos(str, 3) !== false) {
    echo 'ရှိတယ်';
  } else {
    echo 'မရှိဘူး';
  }
?>

ဒီမှာ array အဖြစ်ခွဲတာက ဘာကြောင့် မကောင်းတာလဲ။ ဘာလို့လဲဆိုတော့၊ ပထမဦးစွာ၊ array အဖြစ်ခွဲခြင်းအတွက် processor ၏ အရင်းအမြစ်များ ကုန်ကျသည်၊ ဒုတိယအနေနဲ့၊ ရလာတဲ့ array က memory ထဲမှာ နေရာယူမှာဖြစ်ပြီး (ဒါက မူလစာကြောင်းယူတဲ့နေရာထက် ပိုများနိုင်သည်)။

သင်ခန်းစာ။ မလုပ်ဘဲနေလို့ရတဲ့နည်းရှိရင် စာကြောင်းကို array အဖြစ်မခွဲပါနဲ့။

Задание 1

အောက်ပါကုဒ်တွင် programmer တစ်ဦးသည် စာကြောင်း၏အက္ခရာများကို ပြောင်းပြန်အစဉ်အတိုင်း ပြန်လည်စီစဉ်နေသည်။ ထို programmer ၏ဖြေရှင်းချက်ကို အကောင်းဆုံးချွေတာပါ။

php<?php
  $str = '123345';
  $rev = implode('', array_reverse(explode('', $str)));
  echo $rev; // '54321' ကိုပြမည်
?>
Задание 2

အောက်ပါကုဒ်တွင် စာသားထဲရှိ စကားလုံးအရေအတွက်ကို ရှာဖွေနေသည်။ ထို programmer ၏ဖြေရှင်းချက်ကို အကောင်းဆုံးချွေတာပါ။

php<?php
  $str = 'aaa bbb ccc'; // ရှည်လျားသောစာကြောင်း
  echo count(explode(' ', $str));
?>