PHP将前导零的数字转换为字符串

时间:2018-11-01 15:54:22

标签: php string integer

我找不到能解决PHP中整数到字符串转换这一方面的问题,所以...
我有一个文件,其中一个字段包含一些长度为3、4或5位数字 我需要将所有数字标准化为4位。
如果数字是123、1234、12345,那么为了标准化,我在第一个后面添加零,对第二个不做任何操作,在第三个不做四舍五入:round(12345/10) 到目前为止,一切都很好。问题在于文件中包含一些数字,这些数字前导零为023、0234、02346。
我需要保留前导零,我希望输出为0230、0234、0235 我以为我可以强制字段为字符串,如果第一个字符为零,则删除它,对剩余数字进行计算,然后将该数字左移为带前导零的字符串
当我尝试将前导零的数字转换为字符串时,前导零的问题似乎被解释为指示数字为八进制。
strval(0123)> 83
(字符串)0123> 83

我已经通过编辑源数据文件来执行此任务,以用哈希替换任何前导零,以便该字段成为字符串。然后,我的过程变为:如果该字段以#开头,则将其剥离,然后进行计算,然后在前面加上零。当然有更好的解决方案,也许以其他方式读取文件?我正在使用fgetcsv

2 个答案:

答案 0 :(得分:-1)

我会在您的数字中添加下一个最大的数字,即1后跟零。

0672-> +1000

获得1672

然后,将其转换为字符串,然后将位置1处的字符再次更改为零。

那是我的方式...我对PHP还是很陌生,所以可能会有更复杂的答案,但是如果所有其他方法都失败了,那就行了。

答案 1 :(得分:-2)

您可以使用以下代码

tensorflow

您可以更改$yourInt = 253; $intWithZeros = sprintf("%05d", $yourInt); // result 00253 中的值5的字符数