[PHP]添加或者去除字符串的前导零
需求:字符串每个部分至少是六位,不够六位补零,并用逗号隔开。
代码:
//方法一:使用sprintf()函数 printf()
$str = “1,22,333,4444,55555,666666,1234567890”;
var_dump($str);
$arr = explode(“,”,$str);
foreach($arr as $val){
$new_arr[] = sprintf(“s”,$val);
}
var_dump($new_arr);
$new_str = implode(“,”,$new_arr);
var_dump($new_str);
//方法二是用str_pad()函数
$str = “1,22,333,4444,55555,666666,1234567890”;
var_dump($str);
$arr = explode(‘,’,$str);
var_dump($arr);
foreach($arr as $val){
var_dump($val);
$new_arr2[] = str_pad(trim($val), 6, ‘0’, STR_PAD_LEFT);
}
var_dump($new_arr2);
$new_str = implode(“,”,$new_arr);
var_dump($new_str);
经 @IT不倒翁 提醒,知道新浪博客会过滤一些特殊字符,现将程序截图贴在下面:
(请以截图中的程序为准)
[PHP]格式化输出:添加或者去除字符串的前导零
补充:
//去除前导零
$arr = explode(‘,’,$new_str);
foreach($arr as $val) {
$narr[] = intval($val);
}
var_dump($narr);
函数:
explode — 使用一个字符串分割另一个字符串
implode — Join array elements with a string
intval — 获取变量的整数值
str_pad — 使用另一个字符串填充字符串为指定长度
sprintf — Return a formatted string
格式:sprintf(format,arg1,arg2,arg++)
参数 format 是转换的格式,以百分比符号 (“%”) 开始到转换字符结束。下面的可能的 format 值:
%% - 返回百分比符号
%b - 二进制数
%c - 依照 ASCII 值的字符
%d - 带符号十进制数
%e - 可续计数法(比如 1.5e+3)
%u - 无符号十进制数
%f - 浮点数(local settings aware)
%F - 浮点数(not local settings aware)
%o - 八进制数
%s - 字符串
%x - 十六进制数(小写字母)
%X - 十六进制数(大写字母)
arg1, arg2, ++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的。在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
格式化数字:
string number_format ( float $number [, int $decimals = 0 ] )
参考资料:
http://www.php.net/manual/zh/
http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/12/16/2290585.html