欢迎来到福编程网,本站提供各种互联网专业知识!

PHP 数字左侧自动补0

发布时间:2008-03-31 作者: 来源:转载
举例来说:员工的工号X001虽然MySQL本身的字段设定成zerofill的属性时,会将不足位数的部份补上0,但是这个功能只能用在数字的字段上面。所以必要的时候只好靠PHP来进行了。
复制代码 代码如下:
$sourceNumber="1";
$newNumber=substr(strval($sourceNumber+1000),1,3);
echo"$newNumber";
?>

这个时候就会出现:001
如果要增加位数的话可以将1000加大,然后把3也加大。
举例:如果我要补上"4个0"第03行就要变成这样。
复制代码 代码如下:
$newNumber=substr(strval($sourceNumber+100000),1,5);
?>

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

更好的方法:
stringstr_pad(string$input,int$pad_length[,string$pad_string[,int$pad_type]])

复制代码 代码如下:
$input="Alien";
echostr_pad($input,10);
//produces"Alien"
echostr_pad($input,10,"-=",STR_PAD_LEFT);
//produces"-=-=-Alien"
echostr_pad($input,10,"_",STR_PAD_BOTH);
//produces"__Alien___"
echostr_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;
}

相关推荐