လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ARRAY အညွှန်းကိန်းအဖြစ်စီမိ () ရလဒ်များကိုအဘယ်ကြောင့်ပြ problems နာများဖြစ်ပေါ်စေသနည်း။

ARRAY အညွှန်းကိန်းအဖြစ်စီမိ () ရလဒ်များကိုအဘယ်ကြောင့်ပြ problems နာများဖြစ်ပေါ်စေသနည်း။

M66 2025-07-04

PHP ပရိုဂရမ်တွင် CEIL () function သည် floating point နံပါတ်များကိုလှည့်ပတ်ရန်နှင့်တန်ဖိုးထားသောတန်ဖိုးထက်အနည်းဆုံးကိန်းဂဏန်းများကိုပြန်ပို့လေ့ရှိသည်။ ပထမတစ်ချက်မှာ CEILI () ၏ရလဒ်ကို array ညွှန်းကိန်းအဖြစ်အသုံးပြုရန်ကျိုးကြောင်းဆီလျော်ပုံရသည်။ ဤဆောင်းပါးသည် CEIL () ရလဒ်များကိုအညွှန်းကိန်းအညွှန်းတစ်ခုအဖြစ်တိုက်ရိုက် အသုံးပြု. အဘယ်ကြောင့်မှားယွင်းနေသည်ကိုအဘယ်ကြောင့်နက်ရှိုင်းစွာလေ့လာလိမ့်မည်။


1 ။ CEILE () သည် floating point နံပါတ်တစ်ခုကိုပြန်ပို့သည်

CEIL () function ၏သင်္ချာဆိုင်ရာသင်္ချာဆိုင်ရာအဓိပ္ပာယ်သည် php တွင်ပါ 0 င သည်။ ရိုးရှင်းတဲ့ဥပမာတစ်ခုပေးရန်

 <?php
$val = 3.1;
$index = ceil($val);
var_dump($index);  // float(4)
var_dump(gettype($index)); // string(5) "double"
?>

ပြန်လည်နေရာချထားသည့်အညွှန်းကိန်းသည် integer 4 မဟုတ်ဘဲ floating point 4.0 ဖြစ်သည်။


2 ။ PHP Array ညွှန်းကိန်းတွင် floating point နံပါတ်များကိုမည်သို့ကိုင်တွယ်ရမည်နည်း

floating-point နံပါတ်များကိုခင်းကျင်းရန်အတွက်သော့များအဖြစ် php သည် floating-point နံပါတ်များကိုအလိုအလျောက်ပြောင်းလဲလိမ့်မည်, သို့သော်ဤပြောင်းလဲခြင်းသည်တစ်ခါတစ်ရံမမျှော်လင့်သောပြ problems နာများကိုဖြစ်ပေါ်စေသည်။

 <?php
$array = [];
$array[ceil(1.2)] = 'a';
$array[4.0] = 'b';

var_dump($array);
?>

ရလဒ်ရလဒ် -

 array(2) {
  [2]=>
  string(1) "a"
  [4]=>
  string(1) "b"
}

1.9999999999999999999 ကဲ့သို့သော index နှင့်နီးကပ်သော index တွင် index တွင် floinging point နံပါတ်များပါ 0 င်ပါက၎င်းသည်ရှုပ်ထွေးမှုများသို့မဟုတ် overwrite ဖြစ်စေနိုင်သည်။


3 ။ floating point တိကျမှန်ကန်မှုအမှားကြောင့်ဖြစ်ပေါ်လာသောဝှက်ထားသောအန္တရာယ်များ

floating point တွက်ချက်မှုများတွင်တိကျသောအမှားပြ problem နာတစ်ခုသည် စီil () သည်သီအိုရီအရ ins ည့်သည်များအတွက်ရှုပ်ထွေးမှုများကိုပိုမိုရှုပ်ထွေးစေနိုင်သည့် flowering point နံပါတ်တစ်ခုသို့ ဦး တည်သည်။

 <?php
$value = 2.9999999999999996;
$index = ceil($value);  // သီအိုရီအရ3
var_dump($index);       // ဖြစ်နိုင်စရာ float(3) သို့သော်ပြည်တွင်းရေးစွမ်းဆောင်ရည်သည်ကိုက်ညီမှုမရှိပါ

$array = [];
$array[$index] = 'value1';
$array[3] = 'value2';

var_dump($array);
?>

တခါတရံမှာ ဒေါ်လာ array [$ အညွှန်းကိန်း] နှင့် $ array [3] သည်ကွဲပြားခြားနားသောသော့များဟုယူမှတ်သည်။


4 ။ ဖြေရှင်းနည်း

ရှင်းလင်းပြတ်သားစွာအမျိုးအစားပြောင်းလဲခြင်း

လုံခြုံစိတ်ချရသောအချက်မှာ ceil () သည် ခင်းကျင်းသောနေရာများမှန်ကန်ကြောင်းသေချာစေရန်အတွက် aril () ကိုအသုံးပြုသောအခါအလုံခြုံဆုံးနည်းလမ်းမှာ floating point နံပါတ်များကိုကိန်းဂဏန်းများကိုခွဲခြားရန် ဖြစ်သည်။

 <?php
$val = 3.1;
$index = (int) ceil($val);

$array = [];
$array[$index] = 'value';

var_dump($array);
?>

၎င်းသည်သွယ်ဝိုက်ပြောင်းလဲခြင်း၏ဖြစ်နိုင်သောဘေးထွက်ဆိုးကျိုးများကိုရှောင်ရှားသည်။

Code Support (URL ဥပမာနှင့်အတူ)

URL မှကိန်းဂဏန်း parameter ကိုရယူရန်လိုအပ်ကြောင်းနှင့်၎င်းကိုအညွှန်းတစ်ခုအဖြစ်ပတ် 0 န်းကျင်ရှိရန်လိုအပ်သည်ဆိုပါစို့။

 <?php
$url = 'http://m66.net/path?num=2.7';
parse_str(parse_url($url, PHP_URL_QUERY), $query);
$num = $query['num'];

$index = (int) ceil($num);
$array = [];
$array[$index] = 'some value';

print_r($array);
?>

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

  • CEIL () ကိန်းဂဏန်းတစ်ခုမဟုတ်ဘဲ floating point နံပါတ်ကိုပြန်ပို့သည်။

  • PHP Array keys များသည် floating point နံပါတ်များကိုအသုံးပြုသောအခါအလိုအလျောက်ပြောင်းလဲသွားသည်။ သို့သော်တိကျမှန်ကန်မှုအမှားများ၏လျှို့ဝှက်အန္တရာယ်များရှိသည်။

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

  • CEIL (CEIL) ကို အသုံးပြုသောအခါ (Int) ပြောင်းလဲခြင်းကိုအသုံးပြုခြင်းသည်အညွှန်းကိန်းအမျိုးအစားသည်ကိန်းဂဏန်းတစ်ခုဖြစ်ကြောင်းသေချာစေရန် (Int) ကိုအသုံးပြုရန်အကြံပြုသည်။

CEIL ၏ပြန်လည်ပတ်မှုအမျိုးအစားနှင့် PHP ၏ကိုင်တွယ်မှုဆိုင်ရာစည်းမျဉ်းစည်းကမ်းများကိုမှန်ကန်သောနားလည်မှုကိုမှန်ကန်သောနားလည်မှုကိုနားလည်ခြင်းသည် code တွင်ဝှက်ထားသောလျှို့ဝှက်အန္တရာယ်များကိုရှောင်ရှားနိုင်ပြီးခိုင်မာသောနှင့်ယုံကြည်စိတ်ချရသောအစီအစဉ်များကိုရေးဆွဲနိုင်သည်။