将php字符串转换为数组
问题描述:
我使用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专家,有点卡在这里...任何建议,欢迎。
答
[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]',
)
答
感谢您的反馈意见和建议/不知道如何将上述内容整合到我的代码中(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
将您的阵列成JSON字符串。一切都明白JSON数据结构 – RiggsFolly