Я пытаюсь построить график рассеяния с использованием высоких диаграмм.
Код Javascript:
<script type='text/javascript'> \$(function () { var chart; \$(document).ready(function() { chart = new Highcharts.Chart({ chart: { renderTo: '$div_id', type: 'scatter', zoomType: 'xy', marginRight: 450, marginBottom: 75 }, ... ... series: [{ name: 'name1', data: $data }] }); }); }); </script>";
Мой PHP-код:
$data_array4 = mysql_query("SELECT * from table", $link); $ret1 = array(); while($item = mysql_fetch_array($data_array4)) { $La = $item['L']; $Ge = $item['G']; $ret1[] = array($La,$Ge); } $data = json_encode($ret1);
Мои данные выглядят так:
data: [["0.457","0.02"],["0.464","0.02"],["0.469","0.01"],["0.469","0.01"]]
Диаграмма не отображалась, потому что двойные кавычки. Как я могу удалить их, не используя $ data = json_encode ($ ret1, JSON_NUMERIC_CHECK), я на PHP 5.2, не могу использовать этот параметр.
Благодаря!
Кажется, вы не поняли это из комментариев. Но, конечно, вам нужно преобразовать обе строки в реальные числа:
$La = (float) $item['L']; $Ge = (float) $item['G']; $ret1[] = array($La,$Ge);
В противном случае результирующий список будет содержать одну строку и одно число, что приведет к созданию объекта / карты JSON вместо списка.
Ваш следующий вопрос: Да, float являются неточными и не всегда короткими, как исходное строковое представление.
Вы можете преобразовать каждое значение в число с помощью floatval
$num = floatval("5.125");
http://us3.php.net/manual/en/function.floatval.php
Вы также можете parseFloat
массив в JavaScript и использовать parseFloat
…
var num = parseFloat("5.125");