回答:
$str = ltrim($str, '0');
(string)((int)"00000234892839")
(int) "00009384783473"
(乱数)を試したところ、結果は2147483647でした。ただし、フロートとしてキャストした場合は、問題なく動作するようです。ストレンジ
人々がなぜそんなに単純なことを達成するためにそれほど複雑な方法を使用しているのかわからない!そして正規表現?うわー!
ここで、最も簡単で簡単な方法を説明します(ここで説明されているように: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 5.3以降)、省略三項演算子を使用できます。
$str = ltrim($str, '0') ?: '0';
$str = ltrim($str, '0') ?: '0';
-冗長なトリム呼び出しはありません。
正規表現はすでに提案されていますが、正しくありません:
<?php
$number = '00000004523423400023402340240';
$withoutLeadingZeroes = preg_replace('/^0+/', '', $number)
echo $withoutLeadingZeroes;
?>
出力は次のとおりです。
4523423400023402340240
正規表現の背景:^
文字列の先頭の信号と+
記号は、先行する記号のほとんどまたはまったくを示します。したがって、正規表現^0+
は文字列の先頭にあるすべてのゼロに一致します。
preg_replace() expects at least 3 parameters, 2 given
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
Ajay Kumarは最も単純なエコー+ $ 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でそれを見ました、どこで覚えていない。
3つ以上のゼロの実行を削除して、例が1つの文字列であると仮定します。
$test_str ="0002030050400000234892839000239074";
$fixed_str = preg_replace('/000+/','',$test_str);
私の仮定が外れている場合、正規表現パターンを必要なものに合わせることができます。
この助け?
<br>
、番号を区切るタグがあることに気付きました。それらは実際に文字列の一部ですか?