【问题标题】:convert 01, 02, 03, 04 .. 09 to 1,2,3,4 ... 9将 01, 02, 03, 04 .. 09 转换为 1,2,3,4 ... 9
【发布时间】:2009-12-04 15:07:59
【问题描述】:

我该如何转换

01 to 1
02 to 2

一直到 9 点?

谢谢

【问题讨论】:

    标签: php int


    【解决方案1】:

    改为使用(int)$str;。它比 intval() 快 4 倍。

    【讨论】:

      【解决方案2】:

      我假设输入是一个字符串?

      $str = "01";
      $anInt = intval($str);
      

      您可能认为前导 0 意味着这被解释为八进制,就像在许多其他语言/API 中一样。然而 intval 的第二个参数是一个基础。默认值为 10。这意味着 09->9。请参阅intval 页面上的第一条评论,该评论指出,您可能期望的基数扣除只有在您将 0 作为基数传入时才会发生。

      【讨论】:

      • 如果输入被视为 int,它将被处理为八进制。 (所以 09->0)
      • 改为(int)$str;。它比 intval() 快​​ 4 倍。
      【解决方案3】:
      $x="01";
      $x=+$x;
      
      $x="02";
      $x=+$x;
      
      ...
      

      $x=+"01";
      

      应该适用于 int 和 string

      【讨论】:

        【解决方案4】:
        $str = "05";
        $last = $str[1]; 
        

        【讨论】:

        • intval() 解决方案在这种情况下更可靠,因为它也可以捕获“009”。
        • 真的。但我的解决方案更快,而且 TS 没有说任何关于 009 的内容 :-)
        【解决方案5】:
        $i = substr($input, 1, 1);
        

        【讨论】:

          【解决方案6】:

          如果要使用通用正则表达式解决方案:'s/[0]([0-9])/\1/'(酌情添加锚点)

          【讨论】:

            【解决方案7】:
            $str='05';
            
            if(strpos($str,'0')==0 && strpos($str,'0') != false ){ 
             $new = intval(substr($str,1));
            }
            

            【讨论】:

              【解决方案8】:

              你可以使用预定义的php函数。

              intval() 
              

              例如:

               $convert =  intval(01);
               echo $convert ;
              

              它将打印 1(one);

              【讨论】:

                猜你喜欢
                • 2021-06-23
                • 2021-02-17
                • 1970-01-01
                • 2014-12-28
                • 1970-01-01
                • 2018-09-04
                • 1970-01-01
                • 2020-01-19
                • 2017-01-26
                相关资源
                最近更新 更多