【问题标题】:Add "0" to the front of an integer [duplicate]在整数前面添加“0”[重复]
【发布时间】:2013-08-29 09:07:55
【问题描述】:

您好,我正在使用mt_rand(1, 99999) 生成一个随机整数,如果它不等于 5 位,它将在整数前面添加 0。

这是我的第一次尝试:

$random_number = mt_rand(1, 99999);
$ran_len = strlen($random_number);

while ($ran_len != 5 ) {
$add_ran_num = str_pad($random_number, 1, "0", STR_PAD_LEFT);
}

echo $add_ran_num;

【问题讨论】:

  • 将$ran_len = ... 放入循环或填充中,相差5。
  • 显然看不到问题。
  • 这个 while 确实给了一个无限循环,不是吗?

标签: php


【解决方案1】:
printf('%05d', mt_rand(1, 99999));

【讨论】:

    【解决方案2】:

    您不需要 strlen 或 while 循环:

    $random_number = mt_rand(1, 99999);
    $add_ran_num = str_pad($random_number, 5, "0", STR_PAD_LEFT);
    echo $add_ran_num;
    

    【讨论】:

      【解决方案3】:

      这会做你想做的事

      $random_number = str_pad(mt_rand(1, 99999), 5, "0", STR_PAD_LEFT);
      

      【讨论】:

        【解决方案4】:

        你没有更新$ran_len的值:

        $random_number = mt_rand(1, 99999);
        $ran_len = strlen($random_number);
        
        while ($ran_len != 5 ) {    
            $add_ran_num = str_pad($random_number, 1, "0", STR_PAD_LEFT);
            $ran_len = strlen($random_number);//<---
        }
        
        echo $add_ran_num;
        

        因此循环是无限的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-26
          • 2023-03-03
          • 2016-05-19
          • 2015-11-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多