PHP给数字或字符串左侧、右健补全/补零0或自动补全其他符号的方法

其实自动给数字补零的方法,大家可以写出很多种,是利用php的内置函数来处理的。所以理论上,会速度更快,性能会更好,当然代码也会更优秀。

开始介绍我们的php给数字左边、右边或小数点后面补零或其他符号的二种方法吧!

在php中有两个函数——至少有两个是否有其他的我还不知道,能够实现数字补零,str_pad(),sprintf()详细如下

一、str_pad函数介绍

顾名思义这个函数是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串

例如:str_pad(带填补的字符串,填补后的长度,填补字符串,填补位置)

其中填补后的长度必须是个正整数,填补位置有三个选项,

1
2
3
左边:STR_PAD_LEFT,
右边:STR_PAD_RIGHT,
两端:STR_PAD_BOTH

 

例如:

1
2
3
4
5
6
7
8
9
10
11
echo str_pad(1,8,”0″,STR_PAD_LEFT);

结果:00000001

echo str_pad(1,8,”0″,STR_PAD_RIGHT);

结果:10000000

echo str_pad(1,8,”0″,STR_PAD_BOTH);

结果:00010000

在上边的例子中值得注意的一个细节是,如果填补的位数是个奇数,例如例三中填补了7个0,右边优先。

二、再看补零的另外一种方法sprintf

这个函数学过c的都十分了解它,呵呵……

不过咱不说这么多,因为用起来实在太灵活了,以至于我基本不会用,不过在左边补零(或者在小数点后补零)用起来还是很方便的

1
2
3
4
5
6
7
8
先看左边补零
echo sprintf(”%05d”,1);
先说%05d的意思,用一个5位数的数字格式化后边的参数,如果不足5位就补零
运行结果是00005
再看小数点后补零
echo sprintf(”%01.3f”,1);
%01.3f的意思是说,用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
其运行结果是:1.000

 

关于补零的这两种方法大家可以挑选着使用,其实各有优劣,sprintf能够保证你不至于误操作吧1补成1000000哈哈,str_pad可以保证你想补啥补啥。

坚持原创技术分享,您的支持将鼓励我继续创作!