PHP删除第一个零

PHP删除第一个零,php,formatting,string-formatting,zero,number-formatting,Php,Formatting,String Formatting,Zero,Number Formatting,要删除某些变量开头的所有0。 一些选择: 如果$var=0002,我们应该首先剥离000($var=2) 如果var=0203410我们应该首先删除0($var=203410) 如果var=20000-什么也不做($var=20000) 解决方案是什么?可能是ltrim $var = ltrim($var, '0'); 将其转换为整数 $var = (int)$var; 或者,如果您不关心它是否仍然是一个字符串,只需将其转换为int并保持不变 $var = ltrim($var, '0');

要删除某些变量开头的所有
0

一些选择:

  • 如果
    $var=0002
    ,我们应该首先剥离
    000
    $var=2
  • 如果
    var=0203410
    我们应该首先删除
    0
    $var=203410
  • 如果
    var=20000
    -什么也不做(
    $var=20000

  • 解决方案是什么?

    可能是
    ltrim

    $var = ltrim($var, '0');
    
    将其转换为整数

    $var = (int)$var;
    
    或者,如果您不关心它是否仍然是一个字符串,只需将其转换为int并保持不变

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

    这仅适用于字符串,以0开头的数字将被解释为八进制数字,多个零将被忽略。

    只需使用+内部变量:

    echo +$var;
    

    在铸造类型上谨慎

    var_dump([
        '0014010011071152',
        '0014010011071152'*1,
        (int)'0014010011071152',
        intval('0014010011071152')
    ]);
    
    印刷品:

    array(4) {
        [0]=> string(16) "0014010011071152"
        [1]=> float(14010011071152)
        [2]=> int(2147483647)
        [3]=> int(2147483647)
    }
    
    把它乘以1

    $var = "0000000000010";
    print $var*1;  
    
    //prints 10
    

    @Lekensteyn:除非它是一个语句而不是一个表达式。它不是整行:)ehehheis javascript中有类似的函数吗?当然,几乎每种语言都有强制转换功能。在JS中,您可以使用parseInt()@Workinghard、
    parseInt(var,10)
    1*var
    (我最喜欢的:)有趣。你能发一个相关文档的链接吗?真的,我没有参考资料!但它像一个符咒!将字符串更改为数字,删除所有不必要的零,并将字符串更改为数字。一元运算符作用于数字,因此您正在执行隐式转换。。。糟糕的代码,因为它隐藏了逻辑,没有其他优势,我想…很好的尝试,它在Javascript中工作,但在PHP中,您只需强制转换var:-Dloll。。。我喜欢你的回答“poostchi”。它真的很有魅力。我只是在我的项目中使用它。但是没有相关文档的事实让我思考:(是的,这样我们就不会影响可能的小数位。
    $var = "0000000000010";
    print $var*1;  
    
    //prints 10