PHP တွင် Array အဖြစ်ပြောင်းလဲခြင်းကို အကောင်းဆုံးချွေတာခြင်း
တစ်ခုခုလုပ်ဖို့ စာကြောင်းကို array အဖြစ် အမြဲတမ်းခွဲဖို့ မလိုပါဘူး။
ဥပမာကို ကြည့်ရအောင်။
နောက်ဥပမာတွင် ကုဒ်ရေးသူသည် စာကြောင်းထဲတွင် 3 ဂဏန်းပါမပါ စစ်ဆေးနေသည်။
<?php
$str = '12345';
$arr = explode('', $str); // array အဖြစ်ခွဲပါမည်
if (in_array(3, $arr)) {
echo 'ရှိတယ်';
} else {
echo 'မရှိဘူး';
}
?>
ရေးသူက ကောင်းတယ် - သူ့ကိုယ်ပိုင် ယာယီဖြေရှင်းချက်တွေ ရေးမယ့်အစား PHP ရဲ့ နဂိုရ်ပါလာတဲ့ function တွေကို သုံးတယ်။
ဒါပေမယ့် ကုဒ်က အကောင်းဆုံးမဟုတ်သေးပါ။ ဒီမှာ စာကြောင်းကို array အဖြစ်ခွဲဖို့ မလိုပါ။ အဘယ်ကြောင့်ဆိုသော် စာကြောင်းထဲရှာဖွေရန် အဆင်သင့်ဖြစ်သော strpos function ရှိသည်။
<?php
$str = '12345';
if (strpos(str, 3) !== false) {
echo 'ရှိတယ်';
} else {
echo 'မရှိဘူး';
}
?>
ဒီမှာ array အဖြစ်ခွဲတာက ဘာကြောင့် မကောင်းတာလဲ။ ဘာလို့လဲဆိုတော့၊ ပထမဦးစွာ၊ array အဖြစ်ခွဲခြင်းအတွက် processor ၏ အရင်းအမြစ်များ ကုန်ကျသည်၊ ဒုတိယအနေနဲ့၊ ရလာတဲ့ array က memory ထဲမှာ နေရာယူမှာဖြစ်ပြီး (ဒါက မူလစာကြောင်းယူတဲ့နေရာထက် ပိုများနိုင်သည်)။
သင်ခန်းစာ။ မလုပ်ဘဲနေလို့ရတဲ့နည်းရှိရင် စာကြောင်းကို array အဖြစ်မခွဲပါနဲ့။
အောက်ပါကုဒ်တွင် programmer တစ်ဦးသည် စာကြောင်း၏အက္ခရာများကို ပြောင်းပြန်အစဉ်အတိုင်း ပြန်လည်စီစဉ်နေသည်။ ထို programmer ၏ဖြေရှင်းချက်ကို အကောင်းဆုံးချွေတာပါ။
<?php
$str = '123345';
$rev = implode('', array_reverse(explode('', $str)));
echo $rev; // '54321' ကိုပြမည်
?>
အောက်ပါကုဒ်တွင် စာသားထဲရှိ စကားလုံးအရေအတွက်ကို ရှာဖွေနေသည်။ ထို programmer ၏ဖြေရှင်းချက်ကို အကောင်းဆုံးချွေတာပါ။
<?php
$str = 'aaa bbb ccc'; // ရှည်လျားသောစာကြောင်း
echo count(explode(' ', $str));
?>