2014-02-11 41 views
0

我一直在玩谷歌圖表爲我的項目,並以某種方式,我仍然無法找出顯示多維數組(從數據庫)。谷歌圖表的多維

的print_r()輸出:

Array 
    (
[0] => Array 
    (
     [year] => 2000 
     [value] => 2766 
     [typeName] => Oil 
    ) 

[1] => Array 
    (
     [year] => 2000 
     [value] => 3098 
     [typeName] => Gas 
    ) 

[2] => Array 
    (
     [year] => 2000 
     [value] => 269814 
     [typeName] => Coal 
    ) 

[3] => Array 
    (
     [year] => 1999 
     [value] => 2836 
     [typeName] => Oil 
    ) 

[4] => Array 
    (
     [year] => 1999 
     [value] => 3150 
     [typeName] => Gas 
    ) 

[5] => Array 
    (
     [year] => 1999 
     [value] => 257561 
     [typeName] => Coal 
    ) 
); 

google chart需要的數據格式,我希望它是這樣的:

 ['Year' , 'Oil', 'Gas', 'Coal'] 

    ["2000", 2766, 3098, 269814], 
    ["1999" 2836, 3150, 257561] 

有人能幫助我如何玩的多維? 謝謝!


回答

2

您shuld這個數據轉換成JSON。只需解析以獲得所需的結構O(n)

$headers = array("year" => 0, "oil" => 1, "gas" => 2, "coal" => 3); 
$response[] = array_map("ucfirst",array_keys($headers)); 
foreach($orig_array as $k => $item) { 
    $temp_data[$item['year']][0] = (string) $item['year']; 
    $temp_data[$item['year']][$headers[$item['typeName']]] = $item['value']; 
    if(4==count($temp_data[$item['year']])) $response[] = $temp_data[$item['year']]; 
}  

$json_data = json_encode($response); 
echo($json_data); 
+0

gracias !,正是我在尋找的。 – 1mr3yn

+0

現在,我會玩這個很酷的算法,因爲$頭是動態的,這可以幫助我很多, – 1mr3yn

+0

嗨,先生。 cardeol,我有一個後續問題,如果$ orig_array之一隻有3個鍵會怎麼樣?例如,年份:2000年只有「石油和天然氣」,但沒有「煤」?是否可以用array_fill做到這一點? – 1mr3yn