php 加上数字保留零作为第一个字符
php plus number keep zero as first character
我有这个代码:
$i = '0001';
$j = $i + 1;
我想得到 0002 但它只给我 2
我怎样才能加上 $i 并保留那个 000?
谢谢
您可以使用 str_pad 来保留前导零。
代码在这里,
<?php
$i = '0001';
$val = $i + 1;
echo str_pad($val,4,"0",STR_PAD_LEFT); // 0001
?>
PHP 从 Perl 中获取了一个有用的特性:使用 ++
增加字符串的能力。不幸的是,它做得不是很好。如果你递增 "A0001"
,你会得到 "A0002"
;但是如果你增加 "0001"
,你会得到 2
(相对于原始的 Perl,它会给你 "0002"
)。但是,你可以作弊:
$i="0001";
$j=":$a";
$j++;
$j=substr($j, 1);
这更多的是为了说明一件很酷的事情,可能没有多少人知道,以及它是如何被错误实施的,而不是提供一个真正的解决方案;我绝对希望在我的代码中看到 str_pad
或 sprintf
解决方案。
也许这可以给你一个想法:
$i = '0001';
$i = intval($i);
$i++;
$a = '000';
$result = $a.$i;
echo $result;
$a
和 $i
之间的 .
将变量连接成一个字符串,保留其中的每个字符。
上面的代码将输出 0002
在这里查看:http://sandbox.onlinephpfunctions.com/code/fc2bd5861a6c0d937568b067e98e06977741019c
如果你想保留所有前导零,你可以单独计算它们并像这样递增。当然,这是快速完成的事情,我 100% 肯定有更好的方法可以做到这一点。
我有这个代码:
$i = '0001';
$j = $i + 1;
我想得到 0002 但它只给我 2 我怎样才能加上 $i 并保留那个 000?
谢谢
您可以使用 str_pad 来保留前导零。
代码在这里,
<?php
$i = '0001';
$val = $i + 1;
echo str_pad($val,4,"0",STR_PAD_LEFT); // 0001
?>
PHP 从 Perl 中获取了一个有用的特性:使用 ++
增加字符串的能力。不幸的是,它做得不是很好。如果你递增 "A0001"
,你会得到 "A0002"
;但是如果你增加 "0001"
,你会得到 2
(相对于原始的 Perl,它会给你 "0002"
)。但是,你可以作弊:
$i="0001";
$j=":$a";
$j++;
$j=substr($j, 1);
这更多的是为了说明一件很酷的事情,可能没有多少人知道,以及它是如何被错误实施的,而不是提供一个真正的解决方案;我绝对希望在我的代码中看到 str_pad
或 sprintf
解决方案。
也许这可以给你一个想法:
$i = '0001';
$i = intval($i);
$i++;
$a = '000';
$result = $a.$i;
echo $result;
$a
和 $i
之间的 .
将变量连接成一个字符串,保留其中的每个字符。
上面的代码将输出 0002
在这里查看:http://sandbox.onlinephpfunctions.com/code/fc2bd5861a6c0d937568b067e98e06977741019c
如果你想保留所有前导零,你可以单独计算它们并像这样递增。当然,这是快速完成的事情,我 100% 肯定有更好的方法可以做到这一点。