如何在PHP中将数组的所有值转换为浮点数?

mar*_*kus 7 php pdo

我从我的数据库中获取一个浮点数组,但我得到的数组已将值转换为字符串.

如何在不通过数组循环的情况下将它们再次转换为浮点数?
或者,如何从数据库中获取值而不将其转换为字符串?


编辑:

  • 我正在使用Zend Framework,我正在使用PDO_mysql.每列存储一个值,这是一个要求,所以我不能序列化它们.

  • array_map('floatval', $array) 仅适用于单维数组.

  • floatval使用它时不能使用单个元素,因为我必须将数组传递给我的flash图表.

  • 暂时的非通用解决方案是提取行并对array_map('floatval',$array)每行进行操作.

Gre*_*reg 25

你可以用

$floats = array_map('floatval', $nonFloats);
Run Code Online (Sandbox Code Playgroud)

有选择,PDO::ATTR_STRINGIFY_FETCHES但从我记忆中,MySQL始终如此true

编辑:请参阅错误44341,确认MySQL不支持关闭stringify.

编辑:您还可以映射这样的自定义函数:

function toFloats($array)
{
    return array_map('floatval', $array);
}

$data = array_map('toFloats', $my2DArray);
Run Code Online (Sandbox Code Playgroud)