我想将这些类型的值“3”、“2.34”、“0.234343”等转换为数字。在JavaScript中,我们可以使用Number(),但在PHP中有没有类似的方法?

Input             Output
'2'               2
'2.34'            2.34
'0.3454545'       0.3454545

当前回答

//Get Only number from string
$string = "123 Hello Zahid";
$res = preg_replace("/[^0-9]/", "", $string);
echo $res."<br>";
//Result 123

其他回答

实现这一目标的多种方式之一是:

$fileDownloadCount          =  (int) column_data_from_db;
$fileDownloadCount++;

第二行将值递增1。

您不必选择是将字符串转换为int还是float,只需在其中添加一个0,PHP就会自动将结果转换为数字类型。

// Being sure the string is actually a number
if (is_numeric($string))
    $number = $string + 0;
else // Let the number be 0 if the string is not a number
    $number = 0;

您可以使用:

((int) $var)   ( but in big number it return 2147483647 :-) )

但最好的解决方案是使用:

if (is_numeric($var))
    $var = (isset($var)) ? $var : 0;
else
    $var = 0;

Or

if (is_numeric($var))
    $var = (trim($var) == '') ? 0 : $var;
else
    $var = 0;

有一种方法:

$value = json_decode(json_encode($value, JSON_NUMERIC_CHECK|JSON_PRESERVE_ZERO_FRACTION|JSON_UNESCAPED_SLASHES), true);

使用is_*不起作用,因为变量是:string。

使用json_encode()和json_edecode()的组合将其转换为“真”形式。如果它是真字符串,则输出错误。

$num = "Me";
$int = (int)$num;
$float = (float)$num;

var_dump($num, $int, $float);

将输出:string(2)“Me”int(0)float(0)

在一次编程面试中,我遇到了这样一个问题:“假设你正在编写一个内置函数,用PHP将整数转换为字符串,你会如何编写该函数”。这里有一个解决方案。

$nums = ["0","1","2","3","4","5","6","7","8","9"];
$int = 15939; 
$string = ""; 
while ($int) { 
    $string .= $nums[$int % 10]; 
    $int = (int)($int / 10); 
} 
$result = strrev($string);