0

次のような文字列があるとしましょう:

$str1 = '7.5.4';
$str2 = '7.19.41';

文字列が次のようになるように、各文字列の最後のドットから始まる最後の数文字を削除するにはどうすればよいですか。

$str1 = '7.5';
$str2 = '7.19';

ありがとうございました

4

1 に答える 1

6

これを試して:

   $str1 = substr( $str1, 0, strrpos( $str1, '.' ) );

アップデート

特定のケースでは、単に使用することもできますfloatval

$str1 = '7.5.4';
$str2 = '7.19.41';

echo floatval($str1) . "\n";
echo floatval($str2) . "\n";

number_format終了ゼロがカウントされる場合は、またはと組み合わせる必要があることに注意してくださいsprintf

$str1 = '7.50.4';
$str2 = '7.10.41';

echo number_format(floatval($str1), 2, '.', '') . "\n";
echo sprintf('%0.2f', floatval($str2));

この場合、最初の解よりも実際には何も得られず、特定の精度にも縛られます ('7.190.41'それでも が得られ7.19'7.191'も得られ7.19ます)。ただし、ゼロを終了することを気にしない場合は、勝利です。

于 2013-08-08T19:36:39.650 に答える