如何删除字符串中的所有前导零

Ger*_*ald 153 php string

如果我有一个字符串

00020300504
00000234892839
000239074
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱领先的零点,这样我才能拥有它

20300504
234892839
239074
Run Code Online (Sandbox Code Playgroud)

请注意,上面的数字是随机生成的.

lon*_*day 439

ltrim:

$str = ltrim($str, '0');
Run Code Online (Sandbox Code Playgroud)

  • 警告$ str:='0'.根据这个答案,在我的回答中解释. (2认同)
  • 注意:这会将 '0' 变成 '' (2认同)

Svi*_*ack 12

(string)((int)"00000234892839")
Run Code Online (Sandbox Code Playgroud)


Nab*_*han 10

不知道为什么人们用如此复杂的方法来实现这么简单的事情!和正则表达式?哇!

在这里,您可以使用最简单最简单的方法(如下所述:https://nabtron.com/kiss-code/):

$a = '000000000000001';
$a += 0;

echo $a; // will output 1
Run Code Online (Sandbox Code Playgroud)

  • 请不要这样做......这就是为什么 PHP 得到了不好的代表 (3认同)
  • 这似乎是一个更简单的解决方案,但它不像其他答案那样处理任何大小的字符串.您将从字符串转换为整数然后作为字符串返回 - 更简单,只需缩短字符串. (2认同)

Mik*_*eir 9

类似于另一个建议,除了不会消除实际零:

if (ltrim($str, '0') != '') {
    $str = ltrim($str, '0');
} else {
    $str = '0';
}
Run Code Online (Sandbox Code Playgroud)

  • `$str = ltrim($str, '0') ?: '0';` -- 没有多余的修剪调用。 (2认同)

Ant*_*Kal 7

你可以在你的变量中添加"+",

例如:

$numString = "0000001123000";
echo +$numString;
Run Code Online (Sandbox Code Playgroud)