我想将这些类型的值“3”、“2.34”、“0.234343”等转换为数字。在JavaScript中,我们可以使用Number(),但在PHP中有没有类似的方法?
Input Output
'2' 2
'2.34' 2.34
'0.3454545' 0.3454545
我想将这些类型的值“3”、“2.34”、“0.234343”等转换为数字。在JavaScript中,我们可以使用Number(),但在PHP中有没有类似的方法?
Input Output
'2' 2
'2.34' 2.34
'0.3454545' 0.3454545
当前回答
您只需将0添加到字符串中,即可将其转换为数字,而不会丢失初始原始值。举个例子:
dd('0.3454545' + 0)
PHP将为您处理转换,或者按照已经建议在字符串前添加+。
其他回答
$a = "10";
$b = (int)$a;
您可以使用它在PHP中将字符串转换为int。
仅将数字乘以1,以便将字符串转换为类型number。
//String value
$string = "5.1"
if(is_numeric($string)){
$numeric_string = $string*1;
}
简单地说,你可以这样写:
<?php
$data = ["1","2","3","4","5"];
echo json_encode($data, JSON_NUMERIC_CHECK);
?>
如果你想要一个字符串的数值,但因为不确定而不想将其转换为float/int,这个技巧会将其转换成正确的类型:
function get_numeric($val) {
if (is_numeric($val)) {
return $val + 0;
}
return 0;
}
Example:
<?php
get_numeric('3'); // int(3)
get_numeric('1.2'); // float(1.2)
get_numeric('3.0'); // float(3)
?>
资料来源:https://www.php.net/manual/en/function.is-numeric.php#107326
function convert_to_number($number) {
return is_numeric($number) ? ($number + 0) : FALSE;
}