2011-04-05 69 views
0

当我使用print_r()时,我有一个API比特币返回aray的API调用,那么循环它的最好方法是什么,以便我可以使用这些数据来生成表或图表?在php中使用这个数组循环的最佳方式

[{"volume": 1E+1, "timestamp": 1301982430, "symbol": "mtgoxUSD", "price": 0.62}, 
{"volume": 1E+1, "timestamp": 1301982430, "symbol": "mtgoxUSD", "price": 0.62}, 
{"volume": 31, "timestamp": 1301981474, "symbol": "mtgoxUSD", "price": 0.64}, 
{"volume": 8.592, "timestamp": 1301981466, "symbol": "mtgoxUSD", "price": 0.6401}, 
{"volume": 10.89, "timestamp": 1301981466, "symbol": "mtgoxUSD", "price": 0.6401}, 
{"volume": 9.61, "timestamp": 1301981066, "symbol": "mtgoxUSD", "price": 0.641}, 
{"volume": 1E+1, "timestamp": 1301981058, "symbol": "mtgoxUSD", "price": 0.641}, 
{"volume": 21.654, "timestamp": 1301981058, "symbol": "mtgoxUSD", "price": 0.641}, 
{"volume": 2E+1, "timestamp": 1301980388, "symbol": "mtgoxUSD", "price": 0.6729}, 
{"volume": 1E+1, "timestamp": 1301980373, "symbol": "mtgoxUSD", "price": 0.641}] 
+1

你把你的数组与你分开了,我试图让你变得更加可以理解 - 你能否解释一下你打算做什么样的数据网格。 – 2011-04-05 06:01:41

+0

我正在计划使用google图表api创建图表......以便人们了解过去30天比特币的趋势。 – esafwan 2011-04-05 06:04:59

回答

5

你可以使用json_decode()先转换这JSON字符串到PHP数组:

$str = '[{"volume": 1E+1, "timestamp": 1301982430, "symbol": "mtgoxUSD", "price": 0.62}, {"volume": 1E+1, "timestamp": 1301982430, "symbol": "mtgoxUSD", "price": 0.62}, {"volume": 31, "timestamp": 1301981474, "symbol": "mtgoxUSD", "price": 0.64}, {"volume": 8.592, "timestamp": 1301981466, "symbol": "mtgoxUSD", "price": 0.6401}, {"volume": 10.89, "timestamp": 1301981466, "symbol": "mtgoxUSD", "price": 0.6401}, {"volume": 9.61, "timestamp": 1301981066, "symbol": "mtgoxUSD", "price": 0.641}, {"volume": 1E+1, "timestamp": 1301981058, "symbol": "mtgoxUSD", "price": 0.641}, {"volume": 21.654, "timestamp": 1301981058, "symbol": "mtgoxUSD", "price": 0.641}, {"volume": 2E+1, "timestamp": 1301980388, "symbol": "mtgoxUSD", "price": 0.6729}, {"volume": 1E+1, "timestamp": 1301980373, "symbol": "mtgoxUSD", "price": 0.641}]'; 
$data = json_decode($str); 


,然后,最简单的方法对这些数据的迭代是有foreach循环:

foreach ($data as $item) { 
    echo "{$item->volume} - {$item->timestamp} - {$item->symbol} - {$item->price} <br />"; 
} 


这会得到这样的东西:

10 - 1301982430 - mtgoxUSD - 0.62 
10 - 1301982430 - mtgoxUSD - 0.62 
31 - 1301981474 - mtgoxUSD - 0.64 
8.592 - 1301981466 - mtgoxUSD - 0.6401 
10.89 - 1301981466 - mtgoxUSD - 0.6401 
9.61 - 1301981066 - mtgoxUSD - 0.641 
10 - 1301981058 - mtgoxUSD - 0.641 
21.654 - 1301981058 - mtgoxUSD - 0.641 
20 - 1301980388 - mtgoxUSD - 0.6729 
10 - 1301980373 - mtgoxUSD - 0.641 
1

阵列看起来像JSON编码,你必须把它与json_decode

$array=json_decode($array,true); 

解码和使用foreach循环通过阵列

foreach($array as $key => $value) 
{ 
    echo $key." has the value ".$value; 
} 
1

解码它遍历到一个正常的数组:

$str = json_decode($string); 
相关问题