Dev Blog

스크립트 & 소스코드 공유

실무에서 유용하게 쓰는 스크립트와 코드 조각을 블로그 게시판으로 저장하고 공유합니다.

PHP PHP 숫자 앞자리 0 채우기 - str_pad와 sprintf 두 가지 방법

페이지 정보

조회 215회 작성일 21-11-17 11:31
PHP에서 숫자 앞에 0을 채우는 두 가지 방법을 소개한다. str_pad는 원하는 문자로 문자열을 왼쪽(STR_PAD_LEFT)·오른쪽·양쪽에 채울 수 있고, sprintf는 %02d 형식 지정자로 왼쪽에 0을 채우거나 소수점 이하 자릿수를 보정하는 데 유용하다. 두 함수의 특징과 사용 예제를 비교해 정리했다.

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

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

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

左边:STR_PAD_LEFT

右边:STR_PAD_RIGHT

两端:STR_PAD_BOTH

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的都十分了解它,呵呵……

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

先看左边补零

echo sprintf("%05d",1);
//先说%05d的意思,用一个5位数的数字格式化后边的参数,如果不足5位就补零
//运行结果是00005

再看小数点后补零

echo sprintf("%01.3f",1);
//%01.3f的意思是说,用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
//其运行结果是:1.000

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



Let's create something great together.

프로젝트 문의 및 견적 요청은 언제든 환영합니다.