PHP实现实现数字补零格式化
2015-12-23 17:44
225 查看
在接支付SDK的时候,第三方回调处理时需要IP,并且IP的需求是:去掉点号,补零到每地址段3位, 如:192168000001
先看看我的实现:
php 中有两个函数,能够实现数字补零格式化,str_pad(),sprintf()
现在分别对这两个函数进行详细分析一下:
1:str_pad
顾名思义,str_pad是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串
例如: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,右边优先。
2:sprintf
a:左边补零
echo sprintf(”%05d”,1);
先说%05d的意思,用一个5位数的数字格式化后边的参数,如果不足5位就补零
运行结果是00005
b:小数点后补零
echo sprintf(”%01.3f”,1);
%01.3f的意思是说,用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
其运行结果是:1.000
关于补零的这两种方法大家可以挑选着使用,其实各有优劣,sprintf能够保证你不至于误操作吧1补成1000000哈哈,str_pad可以保证你想补啥补啥。
再来一个小例子:
先看看我的实现:
<?php $IP = explode ( '.', '192.168.1.12' ); $NewIP=""; for($i = 0; $i < count ( $IP ); $i ++) { $NewIP.=str_pad ( $IP [$i], 3, "0", STR_PAD_LEFT ); } echo $NewIP; ?> 结果:192168001012
php 中有两个函数,能够实现数字补零格式化,str_pad(),sprintf()
现在分别对这两个函数进行详细分析一下:
1:str_pad
顾名思义,str_pad是针对字符串来说的这个可以对指定的字符串填补任何其它的字符串
例如: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,右边优先。
2:sprintf
a:左边补零
echo sprintf(”%05d”,1);
先说%05d的意思,用一个5位数的数字格式化后边的参数,如果不足5位就补零
运行结果是00005
b:小数点后补零
echo sprintf(”%01.3f”,1);
%01.3f的意思是说,用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
其运行结果是:1.000
关于补零的这两种方法大家可以挑选着使用,其实各有优劣,sprintf能够保证你不至于误操作吧1补成1000000哈哈,str_pad可以保证你想补啥补啥。
再来一个小例子:
<?php function formatNum($arrayName) { for($i=0;$i<count($arrayName);$i++) { $res[$i]='PQ'.str_pad ($arrayName[$i], 6, "0", STR_PAD_LEFT ); } return $res; } $arrayName = array(1,2,3,4,5,6,7,8,9,10,11,12,13); $result=formatNum($arrayName); var_dump($result);
相关文章推荐
- 记录 “Thinkphp 3.2及以上版本实现支付宝担保交易、即时到账接口类、函数和使用方法”
- 基于RTP的H264视频数据打包解包类
- header函数在php中
- FTP链接mac
- php命令行选项
- PHP获取当前时间、时间戳的各种格式写法汇总
- ThinkPHP分页实例
- 67、STP简介
- 使用OutputDebugString帮助调试
- 【转】php 下载保存文件保存到本地的两种实现方法
- 用Imagick替代php的GD库
- php单例模式
- JetBrains PhpStorm 使用
- php解析数据格式转化为js数组
- php检测邮箱密码
- H.264 RTP PAYLOAD 格式
- php获取服务器系统信息
- Yii学习笔记之三(在windows 上安装 advanced )
- PHP总结
- PHP连接不上PostgreSQL的问题