如何在PHP中将数组的所有值转换为浮点值?
我正在从数据库中获取一个浮点数组,但我得到的数组已将值转换为字符串 如何将它们再次转换为浮点数而不在数组中循环?如何在PHP中将数组的所有值转换为浮点值?,php,Php,我正在从数据库中获取一个浮点数组,但我得到的数组已将值转换为字符串 如何将它们再次转换为浮点数而不在数组中循环? 或者,如何从数据库中获取值而不将其转换为字符串 编辑: 我使用的是Zend框架,我使用的是PDO_mysql。每个列存储一个值,这是一个要求,因此我无法序列化它们 array\u map('floatval',$array)仅适用于一维数组 当我使用单个元素时,我不能floatval,因为我必须将数组传递给我的flash图表 瞬时的非通用解决方案是提取行,并对每行执行arr
或者,如何从数据库中获取值而不将其转换为字符串
编辑:
- 我使用的是Zend框架,我使用的是PDO_mysql。每个列存储一个值,这是一个要求,因此我无法序列化它们
仅适用于一维数组array\u map('floatval',$array)
- 当我使用单个元素时,我不能
,因为我必须将数组传递给我的flash图表floatval
- 瞬时的非通用解决方案是提取行,并对每行执行
array\u map('floatval',$array)
- 您可以使用
$floats = array_map('floatval', $nonFloats);
有一个选项PDO::ATTR\u STRINGIFY\u FETCHES
,但据我所知,MySQL总是将其设置为true
编辑:查看哪个确认MySQL不支持关闭stringify
编辑:您还可以映射如下自定义函数:
function toFloats($array)
{
return array_map('floatval', $array);
}
$data = array_map('toFloats', $my2DArray);
您是如何获取数据的?mysql、mysqli或PDO、其他方式或其他数据库 您可以将
array\u map
与floatval
一起使用,如下所示:
$data=array\u map('floatval',$data)代码>
但这仍然执行一个循环,我认为它假设数据中只有一列
如果有必要的话,当你运用你的价值时,你可能是最好的选择。无论如何,php很可能会很好地解释它。不确定您在这里要问什么?您可以使用(float)$string
将字符串强制转换为float,但由于PHP是动态键入的,因此在需要时,无论如何都会发生这种情况。没有理由进行显式强制转换
你用浮点值做什么?LOL。。。你在做我叫塔尔坤的同一个项目吗
我(昨晚)刚刚在一个基于ZF的项目中创建了一个东西,它使用pdo_mysql来检索和格式化数据,然后将其输出为xml,以便在flash中使用。这些值是作为字符串输入的,但必须是浮点数。
因为我也是编写获取数据的部分和创建数据库的部分的人,所以我只是确保数据在进入数据库之前转换为float
我只是简单地将这些值转换为float,作为其他格式的一部分
protected function _c2f($input)
{
$input = (float)$input;
$output = round(($input * 1.8) + 32, 2);
return $output;
}
我找到了一个简单的手术方法。
您可以通过向代码中添加foreach循环来实现这一点。foreach循环用于逐个获取数组字符串数据。然后,您可以简单地通过函数号\格式来转换它。我在转换为浮点值后使用了2个位置。i、 它用于打印点值后的值2处
$example= array("12.20", "15.05", "55.70");
foreach($example as $float)
{
$update_value = number_format($float,2);
echo $update_value."<br>";
}
$example=数组(“12.20”、“15.05”、“55.70”);
foreach($float示例)
{
$update\u value=数字\u格式($float,2);
echo$update_值。“
”;
}
我知道我可以转换单个值。但是我有一个字符串的多数组,它需要是一个浮动的多数组,如果我将数组传递给打开flash chart,则不会进行转换。我用浮点值画闪光雷达图。RoBorg发布的解决方案非常好!:)有趣的证据。我不能这样做,我的值已经作为FOAT存储在数据库中,但是当我检索它们时,我会得到字符串。因此,在我将它们发送到flash之前,我必须再次将它们转换为浮动。现在它工作得很好。你知道为什么浮点数作为字符串返回吗?我知道simplexml之类的东西会返回字符串。。。您是如何获得数据的?正如RoBorg所说:编辑:参见Bug 44341,它确认MySQL不支持关闭stringify。