本文 17079 pv
4
举例来说:员工的工号 X001
虽然 MySQL 本身的字段设定成 zerofill 的属性时,会将不足位数的部份补上0,但是这个功能只能用在数字的字段上面。
所以必要的时候只好靠PHP来进行了。
这个时候就会出现:001
如果要增加位数的话可以将1000加大,然后把3也加大。
举例:如果我要补上 "4个0" 第03行 就要变成这样。
其实就是总共要显示几位数字,就把$sourceNumber+1后面补上多少个0,最后一个数字就直接改成显示几位数字。
PHP数字左侧自动补0
© kekehu / 技术资源 / 2008.08.07 / 10:54 / 17079PV
PHP 数字左侧自动补0举例来说:员工的工号 X001
虽然 MySQL 本身的字段设定成 zerofill 的属性时,会将不足位数的部份补上0,但是这个功能只能用在数字的字段上面。
所以必要的时候只好靠PHP来进行了。
<?php
$sourceNumber = "1";
$newNumber = substr(strval($sourceNumber+1000),1,3);
echo "$newNumber";
?>
$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);
?>
$newNumber = substr(strval($sourceNumber+100000),1,5);
?>
其实就是总共要显示几位数字,就把$sourceNumber+1后面补上多少个0,最后一个数字就直接改成显示几位数字。
2012.03.23 11:07
看看手册str_pad吧
2010.06.24 16:19
yige 正解
2009.12.03 10:32
呵呵,PHP有自带函数何苦自己写呢?str_pad
2008.08.29 14:28
你上面的方法我觉得不怎么好,介绍一下我写的一个方法。方法函数如下,这样当你要的结果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;
}