PHP 数字左侧自动补0

复制代码 代码如下:

  <?php

  $sourceNumber = "1";

  $newNumber = substr(strval($sourceNumber+1000),1,3);

  echo "$newNumber";

  ?>

  这个时候就会出现:001

  如果要增加位数的话可以将1000加大,然后把3也加大。

  举例:如果我要补上 "4个0" 第03行 就要变成这样。

  

复制代码 代码如下:

  <?php

  $newNumber = substr(strval($sourceNumber+100000),1,5);

  ?>

  其实就是总共要显示几位数字,就把$sourceNumber+1后面补上多少个0,最后一个数字就直接改成显示几位数字。

  更好的方法:

  string str_pad ( string $input, int $pad_length [, string $pad_string [, int $pad_type]] )

  

复制代码 代码如下:

  <?php

  $input = "Alien";

  echo str_pad($input, 10);

  // produces "Alien     "

  echo str_pad($input, 10, "-=", STR_PAD_LEFT);

  // produces "-=-=-Alien"

  echo str_pad($input, 10, "_", STR_PAD_BOTH);

  // produces "__Alien___"

  echo str_pad($input, 6 , "___");

  // produces "Alien_"

  ?>

  补齐字符串的长度.以pad_string 补.默认补在右边,如果STR_PAD_LEFT就补到左边,STR_PAD_BOTH两边一起补。

  下次用str_pad,毕竟是内置的,肯定比自定义的快。

  /*

  你上面的方法我觉得不怎么好,介绍一下我写的一个方法。方法函数如下,这样当你要的结果001的话,方法:dispRepair('1',3,'0')

  功能:补位函数

  str:原字符串

  type:类型,0为后补,1为前补

  len:新字符串长度

  msg:填补字符

  */

  

复制代码 代码如下:

  function dispRepair($str,$len,$msg,$type='1') {

  $length = $len - strlen($str);

  if($length<1)return $str;

  if ($type == 1) {

  $str = str_repeat($msg,$length).$str;

  } else {

  $str .= str_repeat($msg,$length);

  }

  return $str;

  }