use*_*428 47 php string replace numbers comma
在PHP中,我有一个包含所有字符串的变量数组.存储的某些值是带逗号的数字字符串.
我需要的:
一种从字符串中修剪逗号的方法,只对数字字符串执行此操作.这并不像看起来那么简单.主要原因是以下失败:
$a = "1,435";
if(is_numeric($a))
$a = str_replace(',', '', $a);
Run Code Online (Sandbox Code Playgroud)
这$a = "1435"
是因为数字而失败.但$a = "1,435"
不是数字.因为我得到的一些字符串将是带逗号的常规句子,所以我不能在每个字符串上运行字符串替换.
JJJ*_*JJJ 90
反过来说:
$a = "1,435";
$b = str_replace( ',', '', $a );
if( is_numeric( $b ) ) {
$a = $b;
}
Run Code Online (Sandbox Code Playgroud)
Jay*_*ela 18
最简单的是:
$var = intval(preg_replace('/[^\d.]/', '', $var));
Run Code Online (Sandbox Code Playgroud)
或者如果你需要浮动:
$var = floatval(preg_replace('/[^\d.]/', '', $var));
Run Code Online (Sandbox Code Playgroud)
小智 6
试试这个。这对我有用
number_format(1235.369,2,'.','')
如果你使用 number_format 这样的
number_format(1235.369,2)
答案将是1,235.37
但如果你使用如下
number_format(1235.369,2,'.','')
答案将是1235.37
它正在删除“1,235.37”的“,”
听起来您正在寻找的理想解决方案是filter_var()
:
$a = filter_var($a, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND);
Run Code Online (Sandbox Code Playgroud)
(请注意,它使用的是 FILTER_VALIDATE_FLOAT 而不是 FILTER_VALIDATE_INT,因为它当前没有 FILTER_FLAG_ALLOW_THOUSAND 选项)。
归档时间: |
|
查看次数: |
112310 次 |
最近记录: |