2016-06-08 296 views
-2

我使用PHP(通过ajax)检索数据并在java中使用它。我打算使用Google Chart的信息。实施例下面:将php字符串转换为数组

(1)PHP输出/在java输入

[[8058, 26.4]/[8081, 26.5]/[8091, 26.5]/[8092, 26.5]/[8094, 26.5]/[8096, 26.5]/[8104, 26.6]/[8109, 26.6]/[8120, 26.6]/] 

(2)I转换上述PHP到一个字符串数组 - 看起来如下:

[8058, 26.4],[8081, 26.5],[8091, 26.5],[8092, 26.5],[8094, 26.5],[8096, 26.5],[8104, 26.6],[8109, 26.6],[8120, 26.6] 

(3)但是它必须转换成Google Charts可以读取的数组。下面的数组我可以在Google Charts中成功读取

p2 = ([[5, 23.8],[6, 24.0],[7, 24.1],[8, 24.2],[9, 24.3]]); 

那么如何将(2)转换为Google Charts可以读取的数组呢?我不是一个Java专家,有点卡在这里...任何建议,欢迎。

+0

将您的阵列成JSON字符串。一切都明白JSON数据结构 – RiggsFolly

回答

0
[8058, 26.4],[8081, 26.5],[8091, 26.5],[8092, 26.5],[8094, 26.5],[8096, 26.5],[8104, 26.6],[8109, 26.6],[8120, 26.6] 
$data = [8058, 26.4]@[8081, 26.5]@[8091, 26.5]@[8092, 26.5]@[8094, 26.5]@[8096, 26.5]@[8104, 26.6]@[8109, 26.6]@[8120, 26.6] 
This string change comma separated values by other character like @ after that execute below function. 
print_r(explode ('@' , $data)); 
**OUTPUT:** 
array (
    0 => '[8058, 26.4]', 
1 => '[8081, 26.5]', 
2 => '[8091, 26.5]', 
3 => '[8092, 26.5]', 
4 => '[8094, 26.5]', 
5 => '[8096, 26.5]', 
6 => '[8104, 26.6]', 
7 => '[8109, 26.6]', 
8 => '[8120, 26.6]', 
) 
+0

你会如何将这些数据导出到java并在javascript中使用它? – Jeroen

+0

只是以json格式将数据从php返回给jquery,并按照图形格式在图中传递数据。 – Kuldeep

0

感谢您的反馈意见和建议/不知道如何将上述内容整合到我的代码中(explode不起作用)。

我也看着JSON /但首先想要得到我的盘子。

我下面几行:

<html> 
<head> 
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={ 
    'modules':[{ 
     'name':'visualization', 
     'version':'1.1', 
     'packages':['corechart'] 
    }] 
}"></script> 
</head> 

<body> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
    google.setOnLoadCallback(drawChart); 

    function drawChart() { 

     var data = new google.visualization.DataTable(); 
     data.addColumn('number', 'X'); 
     data.addColumn('number', 'temp'); 

     p2 = ([[5, 23.8],[6, 24.0],[7, 24.1],[8, 24.2],[9, 24.3]]); //Test array to check Google Line Chart -> works 

     // Retrieve data via php  
     var phpData = $.ajax({ 
      url: "test.php", 
      dataType: "text", 
      async: false 
     }).responseText; 

     var ary = phpData.replace('[[','[').replace('/]','').split('/'); 

     data.addRows(p2);  // This works to draw line chart (test array P2) 

     var options = { 
      title: 'Any', 
      curveType: 'function', 
      legend: { position: 'bottom' }, 
      hAxis: { title: 'Time', logScale: false }, 
      vAxis: { title: 'T', logScale: false }, 
      colors: ['#a52714', '#097138'] 
     }; 

     var chart = new google.visualization.LineChart(document.getElementById('curve_chart')); 
     chart.draw(data, options); 
    } 
</script> 
    <div id="curve_chart" style="width: 900px; height: 500px"></div> 
</body> 
</html> 
+0

解决了它 - 创建了一些循环来纠正数据并将字符串解析为浮动。它的工作原理和接下来的步骤是去与JSON :-)。谢谢 – Jeroen