PHP从数字中删除前导零0

时间:2013-10-21 08:10:50

标签: php stripping leading-zero

我发布这个,因为这不是大多数新手可能熟悉的东西。

问题

我们有一个使用数字ID的票务系统。现在,公司中的一些人更喜欢将零预先挂入票号,有些人会在没有前导零的情况下引用它,这是正确的方法。因此,要标准化输出,我们必须删除前导零。

这可能听起来很简单,但我们不能仅仅在它上面运行str_replace,因为这可能会删除数字中间的有效0。

现在你可以预先匹配并做各种各样的时髦事情来找到答案,但最简单的是只将数字字符串转换为int。

让我们以下面的用户为例:

<?php
    $correct = 45678;
    $incorrect = 0045678;

    echo $correct . '<br />';
    echo $incorrect;
?>

你应该打印下面的内容:

45678

0045678

现在基本上这些应用程序是相同的,但我希望能够满足以错误格式输入信息的人。

3 个答案:

答案 0 :(得分:7)

使用ltrim

$str="0045678";

$str = ltrim($str, '0');

echo $str;

答案 1 :(得分:0)

您还可以使用ltrim() http://de3.php.net/manual/en/function.ltrim.php从左侧删除所需的字符

答案 2 :(得分:-1)

最简单的解决方案

正如他们所说,最简单的解决方案往往是最好的。而且告诉PHP这是一个我们正在使用的整数更容易。我们通过pre-pending(int)来告诉PHP我们正在使用整数。

使用前面的例子:

<?php
    $correct = 45678;
    $incorrect = (int)0045678;

    echo $correct . '<br />';
    echo $incorrect;
?>

你应该打印下面的内容:

45678

45678

我知道这似乎是不言自明的,但我只是在网站开发中学习了几年的类型转换。也许你会发现这个用途。