Как удалить все ведущие нули в строке

Если у меня есть строка

00020300504 00000234892839 000239074 

как я могу избавиться от ведущих нулей, так что у меня будет только это

 20300504 234892839 239074 

обратите внимание, что число, указанное выше, генерировалось случайным образом.

Related of "Как удалить все ведущие нули в строке"

ltrim :

 $str = ltrim($str, '0'); 
 (string)((int)"00000234892839") 

Подобно другому предложению, за исключением того, что не уничтожит фактический ноль:

 if (ltrim($str, '0') != '') { $str = ltrim($str, '0'); } else { $str = '0'; } 

Не знаю, почему люди используют такие сложные методы для достижения такой простой вещи! И регулярное выражение? Вау!

Здесь вы найдете самый простой и простой способ (как описано здесь: https://nabtron.com/kiss-code/ ):

 $a = '000000000000001'; $a += 0; echo $a; // will output 1 

вы можете добавить «+» в свою переменную,

пример :

 $numString = "0000001123000"; echo +$numString; 

Я не думаю, что preg_replace – это ответ .. старая ветка, но просто случиться с этим сегодня. Литература ltrim и (int) является победителем.

 <?php $numString = "0000001123000"; $actualInt = "1123000"; $fixed_str1 = preg_replace('/000+/','',$numString); $fixed_str2 = ltrim($numString, '0'); $fixed_str3 = (int)$numString; echo $numString . " Original"; echo "<br>"; echo $fixed_str1 . " Fix1"; echo "<br>"; echo $fixed_str2 . " Fix2"; echo "<br>"; echo $fixed_str3 . " Fix3"; echo "<br>"; echo $actualInt . " Actual integer in string"; //output 0000001123000 Origina 1123 Fix1 1123000 Fix2 1123000 Fix3 1123000 Actual integer in tring 

Regex был предложен уже, но не правильно:

 <?php $number = '00000004523423400023402340240'; $withoutLeadingZeroes = preg_replace('/^0+/', $number) echo $withoutLeadingZeroes; ?> 

выход:

 4523423400023402340240 

Справочная информация по регулярному выражению: сигналы ^ начала строки и знак + сигнализируют больше или ни один из предшествующих знаков. Поэтому regex ^0+ соответствует всем нулям в начале строки.

Ajay Kumar предлагает простейшее echo + $ numString; Я использую следующие:

 echo round($val = "0005"); echo $val = 0005; //both output 5 echo round($val = 00000648370000075845); echo round($val = "00000648370000075845"); //output 648370000075845, no need to care about the other zeroes in the number //like with regex or comparative functions. Works w/wo single/double quotes 

Фактически любая математическая функция будет принимать число из «строки» и рассматривать его так. Это намного проще, чем любые регулярные выражения или сравнительные функции. Я видел это в php.net, не помню, где.

Предполагая, что вы хотите удалить три или более нулей, а ваш пример – одна строка:

  $test_str ="0002030050400000234892839000239074"; $fixed_str = preg_replace('/000+/','',$test_str); 

Вы можете сделать шаблон регулярного выражения подходящим, что вам нужно, если мои предположения не работают.

Эта помощь?