10 ответов:
Не знаю, почему люди используют такие сложные методы для достижения такой простой вещи! А регулярное выражение? Ух ты!
здесь вы идете, самый простой и простой способ (как объяснено здесь:https://nabtron.com/kiss-code/ ):
$a = '000000000000001'; $a += 0; echo $a; // will output 1
аналогично другому предложению, за исключением того, что не будет уничтожать фактический ноль:
if (ltrim($str, '0') != '') { $str = ltrim($str, '0'); } else { $str = '0'; }
регулярное выражение было предложено уже, но не правильно:
<?php $number = '00000004523423400023402340240'; $withoutLeadingZeroes = preg_replace('/^0+/', $number) echo $withoutLeadingZeroes; ?>результат:
4523423400023402340240фон на регулярное выражение: элемент
^сигналы начала строки и+знак сигнализирует больше или ни один из предыдущего знака. Поэтому регулярное выражение^0+соответствует всем нулям в начале строки.
Я не думаю, что человек-это ответ.. старый нить, но просто глядя на это. помните (инт) литье-победитель.
<?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
Im исправлено таким образом.
его очень просто. только передать строку его удалить нулевое начало строки.
function removeZeroString($str='') { while(trim(substr($str,0,1)) === '0') { $str = ltrim($str,'0'); } return $str; }
Аджай Кумар предлагает самый простой 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);вы можете сделать регулярное выражение шаблон соответствует тому, что вам нужно, если мои предположения выключены.
в этом помочь?
Comments