我做了一些这样的例子,我从数据库读取数据,然后将其编码为JSON,以便我可以在谷歌图表中使用它。我知道PDO总是返回一个字符串,直到现在我一直在能够把它作为一个工作正常的int,但现在我有一个浮动的列,我似乎无法使它工作。我已经尝试了float_val和其他一些东西,但没有运气。我试图浮动的值是列名称Load_times并包含诸如0.11,0.966,0.1087等值。任何人都可以帮忙吗?
由于
这是使用
的代码$st = $db->prepare ( "SELECT Chart_Type, SUM(Load_Time) from Timing group by Chart_Type;
" );
$st->execute ();
$rows = array ();
$flag = true;
$table = array ();
$table ['cols'] = array (
// Labels for chart, these represent the column titles
array (
'label' => 'Chart_Type',
'type' => 'string'
),
array (
'label' => 'Load_Time',
'type' => 'number'
)
)
;
$rows = array ();
while ( $r = $st->fetch ( PDO::FETCH_ASSOC ) ) {
$temp = array ();
$temp [] = array (
'v' => ( string ) $r ['Chart_Type']
);
// Values of each slice
$temp [] = array (
'v' => ( float ) $r ['Load_Time']
);
$rows [] = array (
'c' => $temp
);
}
$table ['rows'] = $rows;
$jsonTable = json_encode ( $table );
return $jsonTable;
}
打印时,持有$ jsontable的值显示“v”:0。
答案 0 :(得分:0)
要将字符串转换为float,您可以使用任何转换运算符。
这个数字直接来自你的例子:
$str = '0.1087';
$float = (float)$str;
var_dump($float);
//float(0.1087)
答案 1 :(得分:0)
解决了它。在SQL查询中我有SUM(加载时间),但是当对数组中的值进行排序时,我只有Load_Times。当我重命名它时,浮点值有效。