当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP 数字左侧自动补0

PHP
PHP基础教程(11):PHP函数
PHP基础教程(12):PHP表单和用户输入
PHP基础教程(13):PHP $_GET
PHP基础教程(14):PHP $_POST
PHP高级教程(1):PHP日期Date()
PHP高级教程(2):PHP引用文件
PHP高级教程(3):PHP文件处理
PHP高级教程(4):PHP文件上传
PHP高级教程(5):PHP Cookies
PHP高级教程(6):PHP Sessions
PHP高级教程(7):PHP发送电子邮件
PHP高级教程(8):PHP安全的电子邮件
PHP高级教程(9):PHP错误处理
PHP高级教程(10):PHP异常处理
PHP高级教程(11):PHP过滤器(Filter)
PHP+MySQL教程(1):MYSQL简介
PHP+MySQL教程(2):连接MYSQL数据库
PHP+MySQL教程(3):创建数据库和表
PHP+MySQL教程(4):MySQL Insert Into
PHP+MySQL教程(5):MySQL Select

PHP 数字左侧自动补0


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 142 ::
收藏到网摘: n/a

举例来说:员工的工号 X001 虽然 MySQL 本身的字段设定成 zerofill 的属性时,会将不足位数的部份补上0,但是这个功能只能用在数字的字段上面。 所以必要的时候只好靠PHP来进行了。
复制代码 代码如下:

<?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,毕竟是内置的,肯定比自定义的快。