Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置数字格式以消除左侧的零_Php_Format_Substr - Fatal编程技术网

Php 设置数字格式以消除左侧的零

Php 设置数字格式以消除左侧的零,php,format,substr,Php,Format,Substr,在本例中,我需要帮助将数字保持在零之前的右边: $var='LMO0000000381W'=>只保留381 我从substr$var开始,3,-1;这给了我0000000381,但困扰我的可能是其他数字中的零。这些都是我需要证明的案例 0000000381 => 381 0000003081 => 3081 0000030810 => 30810 0000053081 => 53081 给定$var='LMO0000000381W'和字母,这应该可以: echo pre

在本例中,我需要帮助将数字保持在零之前的右边:

$var='LMO0000000381W'=>只保留381

我从substr$var开始,3,-1;这给了我0000000381,但困扰我的可能是其他数字中的零。这些都是我需要证明的案例

0000000381 => 381
0000003081 => 3081
0000030810 => 30810
0000053081 => 53081
给定$var='LMO0000000381W'和字母,这应该可以:

echo preg_replace('/[^1-9]*([0-9]*)/', '$1', $var);
或:


一旦您提取了数字(这是最困难的部分),几乎任何事情都可以:

<?php

$data = '0000000381';
var_dump( (int)$data );
var_dump( (float)$data );
var_dump( number_format($data) );
var_dump( sprintf('%d', $data) );
编辑:如果您想了解其他一些想法,这里有一个未经充分测试的正则表达式:

$var = 'LMO0000000381W';
if( preg_match('/^[A-Z]*0*([0-9]+)[A-Z]*$/i', $var, $matches) ){
    var_dump($matches[1]);
}

但是您的系统很好。

我们有两种方法来实现这一点

1.使用PHP的ltrim函数

$str = ltrim($str, '0');
2.使用类型转换

 `(string)((int)"00000234892839")`

弦乐以字母SEdited开头,并添加了一个匹配项。它是铸造的。完全忘记了显而易见的解决办法,谢谢你提醒我
$str = ltrim($str, '0');
 `(string)((int)"00000234892839")`