[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