我正在研究wordpress插件,我需要从数据库中检索数据,在此之前,我只使用本机php mysql_fetch_row()
//这是旧代码的摘录。
echo "(";
$rows=array();
while($row=mysql_fetch_row($query))
{
//echo "My first Rows <br />";
//print_r($row);
$rows[]="[".implode(',',$row)."]";
//echo "The full rows after first implode <br />";
//$rows[] = $row;
}
echo "[".implode(',', $rows)."]";
//echo "The full rows after second implode <br />";
//print json_encode($rows);
echo ");";
?([[1409893200000,134.00],[1416808800000,149.00],[1417413600000,155.00],[1417500000000,155.00],[1418277600000,153.85],[1418364000000,153.85]]);
现在我正在使用$ wpdb对象,但是我被困在编码点。 从数据库中检索的数据是字符串,当我执行json_encode时,它会对字符串进行编码,但我需要的是json_encode的输出是浮点数。
//这是新代码的摘录。
$rows = array();
foreach ( $results as $result )
{
//- json items -
$rows[]= array(
intval($result->time),
$result->value
);
}
echo "(";
echo json_encode($rows);
echo ");";`
?([[1418338800000,"153.85"],[1435705200000,"165.40"],[1421362800000,"161.03"],[1426460400000,"150.00"],[1416783600000,"149.00"],[1433890800000,"179.50"],[1433804400000,"179.50"]]);
这是挑战,数组的第二个值是字符串,我试图将字符串转换为float,但它们不会返回2个小数位。
这就是我所做的。
$num1 = "9";
//Using number_format
echo (float) number_format($num1,2,'.',''); // result is 9 instead of 9.00
//Using Floatval echo floatval("9"); // result is 9 instead of 9.00
如何将数据格式化为带有2位小数的浮点数,例如9.00?
答案 0 :(得分:0)
尝试:
number_format((float) $num1, 2);
答案 1 :(得分:0)
将行作为哈希...而不是数组...然后JSON编码哈希是什么。在任何情况下:不要尝试使用小数位进行乱码:通过这样做,您可以更改正在传递的值。
答案 2 :(得分:0)
经过几天的搜索后,我找到了问题的答案。
这是一个有相同问题的帖子,这就是解决方案。
foreach ( $results as $result )
{
//- json items -
$rows[]= array(
$result->time,
$result->value
);
}
echo "(";
$res = json_encode($rows);
echo str_replace('"', '', $res);
echo ");";
//结果
?([[1418338800000,1.81],[1435705200000,1.70],[1421362800000,1.65],[1426460400000,2.00],[1433890800000,2.23],[1433804400000,2.23]]);