66

PHP には、すべて文字列である変数の配列があります。格納される値の一部は、カンマを含む数値文字列です。

必要なもの:

文字列からコンマを削除する方法で、数値文字列に対してのみこれを行います。これは見た目ほど簡単ではありません。主な理由は、次の失敗です。

$a = "1,435";

if(is_numeric($a))
    $a = str_replace(',', '', $a);

$a = "1435"が数値であるため、これは失敗します。しかし$a = "1,435"、数値ではありません。取得する文字列の一部はコンマを含む通常の文になるため、すべての文字列に対して文字列置換を実行することはできません。

4

7 に答える 7

111

逆の方法で行います:

$a = "1,435";
$b = str_replace( ',', '', $a );

if( is_numeric( $b ) ) {
    $a = $b;
}
于 2012-02-17T20:29:15.480 に答える
26

テストされていませんが、おそらく次のようなものですif(preg_match("/^[0-9,]+$/", $a)) $a = str_replace(...)

于 2012-02-17T20:28:07.030 に答える
7

これを試してください。これは私にとってはうまくいきました

number_format(1235.369,2,'.','')

この number_format(1235.369,2)回答のようにnumber_formatを使用すると、 1,235.37になります

ただし、以下のように使用する場合

number_format(1235.369,2,'.','')答えは1235.37になります

「1,235.37」の「、」を削除しています

于 2017-09-06T06:20:09.253 に答える
2
 function cleanData($a) {

     if(is_numeric($a)) {

     $a = preg_replace('/[^0-9,]/s', '', $a);
     }

     return $a;

}
于 2012-02-17T20:30:37.667 に答える