PHP 数字左侧自动补0

代码如下:

<?php      
    $sourceNumber = "1";      
    $newNumber = substr(strval($sourceNumber+1000),1,3);      
    echo "$newNumber";      
?>

这个时候就会出现:001 
如果要增加位数的话可以将1000加大,然后把3也加大。 
举例:如果我要补上 "4个0" 第03行 就要变成这样。 


代码如下:

<?php      
$newNumber = substr(strval($sourceNumber+100000),1,5);      
?>

其实就是总共要显示几位数字,就把$sourceNumber+1后面补上多少个0,最后一个数字就直接改成显示几位数字。

更好的方法:
string str_pad ( string $input, int $pad_length [, string $pad_string [, int $pad_type]] )

代码如下:

<?php     
$input = "Alien";     
echo str_pad($input, 10);                       
// produces "Alien     "     
echo str_pad($input, 10, "-=", STR_PAD_LEFT);    
// produces "-=-=-Alien"     
echo str_pad($input, 10, "_", STR_PAD_BOTH);     
// produces "__Alien___"     
echo str_pad($input, 6 , "___");                 
// produces "Alien_"     
?>

补齐字符串的长度.以pad_string 补.默认补在右边,如果STR_PAD_LEFT就补到左边,STR_PAD_BOTH两边一起补。
下次用str_pad,毕竟是内置的,肯定比自定义的快。
/*
你上面的方法我觉得不怎么好,介绍一下我写的一个方法。方法函数如下,这样当你要的结果001的话,方法:dispRepair('1',3,'0')
功能:补位函数
str:原字符串
type:类型,0为后补,1为前补
len:新字符串长度
msg:填补字符
*/


代码如下:

function dispRepair($str,$len,$msg,$type='1') {
$length = $len - strlen($str);
if($length<1)return $str;
if ($type == 1) {
$str = str_repeat($msg,$length).$str;
} else {
$str .= str_repeat($msg,$length);
}
return $str;
}

(0)

相关推荐

  • PHP自带函数给数字或字符串自动补齐位数

    先来看个例子:需求为生成4位数,不足前面补0 <?php //生成4位数,不足前面补0 $var=sprintf("%04d", 2); echo $var;//结果为0002 echo date('Y_m_d', time()).'_'.sprintf('d', rand(0,99)); ?> sprintf()函数 有没有感觉很像c语言 1. 语法 sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需

  • PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法

    一.数字补0. 如果要自动生成学号,自动生成某某编号,就像这样的形式"d0000009"."d0000027"时,那么就会面临一个问题,怎么把左边用0补齐成这样8位数的编码呢?我想到了两种方法实现这个功能. 方法一: 先构造一个数字10000000,千万,也就是一个1,7个0,然后加上当前的编号(比如是3),那么就得到 10000003,用字符串截取 substr('10000003',1,7)后就得到0000003,最后在与"d"拼接,就得到了

  • php 截取字符串并以零补齐str_pad() 函数

    定义和用法 str_pad() 函数把字符串填充为指定的长度. 语法 str_pad(string,length,pad_string,pad_type)参数 描述 string 必需.规定要填充的字符串. length 必需.规定新字符串的长度.如果该值小于原始字符串的长度,则不进行任何操作. pad_string 可选.规定供填充使用的字符串.默认是空白. pad_type 可选.规定填充字符串的那边. 可能的值: STR_PAD_BOTH - 填充到字符串的两头.如果不是偶数,则右侧获得额

  • PHP 数字左侧自动补0

    复制代码 代码如下: <?php           $sourceNumber = "1";           $newNumber = substr(strval($sourceNumber+1000),1,3);           echo "$newNumber";       ?> 这个时候就会出现:001  如果要增加位数的话可以将1000加大,然后把3也加大.  举例:如果我要补上 "4个0" 第03行 就要变成这样

  • js正则格式化日期时间自动补0的两种解法

    目录 背景 解法一 思路: 代码: 解法二 思路: 总结 参考 背景 时间日期格式化的需求很常见,也有很多工具类转换方法,比如需要将2022-3-4这种日期格式转化为2022-03-04,也就是实现个位数月份或天数日期自动前置补 0.用moment.js.dayjs第三方库的 API 也很容易做到,这里我们自己实现一下看看. 解法一 思路: 先来看看常规方案.就用这个2022-3-4日期来举例子,我们先根据-切分字符串,得到一个数组,然后分别识别3.4这种个位数日期,<10就前置补 0,否则不操

  • php基于str_pad实现卡号不足位数自动补0的方法

    自动补足空白位数在php中str_pad函数可以帮我们实现哦,str_pad() 函数把字符串填充为指定的长度. str_pad() 函数把字符串填充为指定的长度. 语法 str_pad(string,length,pad_string,pad_type) 参数 描述 string 必需.规定要填充的字符串. length 必需.规定新字符串的长度.如果该值小于原始字符串的长度,则不进行任何操作. pad_string 可选.规定供填充使用的字符串.默认是空白. pad_type 可选.规定填充

  • Java String字符串补0或空格的实现代码

    废话不多说了,关键代码如下所示: package cn.com.songjy; import java.text.NumberFormat; //Java 中给数字左边补0 public class NumberFormatTest { public static void main(String[] args) { // 待测试数据 int i = 1; // 得到一个NumberFormat的实例 NumberFormat nf = NumberFormat.getInstance(); /

  • java如何自动补齐数值至指定位数

    目录 java自动补齐数值至指定位数 java字符串前补零和后补零的快速方法 数字字符串替换方法 非数字字符串前补零 总结 java自动补齐数值至指定位数 如流水号需要在数字前自动补齐0,至指定位数. 如果已经达到了指定位数,不会补齐,返回原数值.     /**      * 自动补齐位数      * @param length 补齐后的位数      * @param num 待补齐的数值      * @return      */     public static String pa

  • python中利用zfill方法自动给数字前面补0

    python中有一个zfill方法用来给字符串前面补0,非常有用 view sourceprint? n = "123" s = n.zfill(5) assert s == "00123" zfill()也可以给负数补0 n = "-123" s = n.zfill(5) assert s == "-0123" 对于纯数字,我们也可以通过格式化的方式来补0 n = 123 s = "%05d" % n a

  • JavaScript如何实现对数字保留两位小数一位自动补零

    本章节介绍一下如何实现对数字保留两位小数效果,如果数字的原本小数位数不到两位,那么缺少的就自动补零,这个也是为了统一的效果,先看代码实例: function returnFloat(value){ var value=Math.round(parseFloat(value)*100)/100; var xsd=value.toString().split("."); if(xsd.length==1){ value=value.toString()+".00"; r

  • 在js中做数字字符串补0(js补零)

    通常遇到的一个问题是日期的"1976-02-03 HH:mm:ss"这种格式 ,我的比较简单的处理方法是这样: function formatDate(d) { var D=['00','01','02','03','04','05','06','07','08','09'] with (d || new Date) return [ [getFullYear(), D[getMonth()+1]||getMonth()+1, D[getDate()]||getDate()].join

  • PHP数字前补0的自带函数sprintf 和number_format的用法(详解)

    很多时候我们需要对数字进行格式化,比如位数不足前面加0补足.用PHP可以很轻易实现,因为PHP自带了相关功能的函数. <?php //生成4位数,不足前面补0 $var=sprintf("%04d", 2); echo $var;//结果为0002 echo date('Y_m_d', time()).'_'.sprintf('d', rand(0,99)); echo sprintf('%05s',444);//输出5为字符串,不足以0补充 ?> sprintf()函数

随机推荐