2017-03-16 33 views
0

未定義的數字我需要繪製圖表谷歌與(行)中的一個不確定數。讓我們假設我需要繪製在某一天的兩支球隊的進球數(團隊人數是固定的例子,但它可能是任何人,天數是所有球隊一樣)。我有這樣的陣列:畫一個谷歌圖用線

Array 
(
    [team1] => Array 
     (
      [0] => Array 
       (
        [day] => 1 
        [goals] => 3 
       ) 

      [1] => Array 
       (
        [day] => 2 
        [goals] => 1 
       ) 

      [2] => Array 
       (
        [day] => 3 
        [goals] => 0 
       ) 
     ) 
    [team2] => Array 
     (
      [0] => Array 
       (
        [day] => 1 
        [goals] => 1 
       ) 

      [1] => Array 
       (
        [day] => 2 
        [goals] => 2 
       ) 

      [2] => Array 
       (
        [day] => 3 
        [goals] => 4 
       ) 
     ) 
) 

我試圖建立這個循環:

$resultArray = array(); 
    $resultArray['cols'][] = array('label' => "Day", 'type' => 'string'); 
    // $array is the one shown before 
    foreach($array as $key => $chartData){ 
     $resultArray['cols'][] = array('label' => $key, 'type' => 'number'); 
     foreach($chartData as $data){ 
      $resultArray['rows'][] = array('c' => array(array('v' => $data['day']), array('v' => $data['goals']))); 
     } 
    } 

的問題是,該圖表僅繪製與從兩個隊數據的一個線連接一起,而不是兩行一個用於各組。

我真的很感激任何幫助。

回答

1

我覺得你使用谷歌圖表數據關聯數組使其難以自己。你的陣列的數據結構也增加了循環的一些挑戰使得它更有點挑戰來獲取數據出所需的格式:

$chartData = array(); 
$chartData[] = array("Day"); 
foreach($array as $key => $a){ 
    $chartData[0][] = $key; 
    for($i = 0; $i < count($a); $i++){ 
    if(!is_array($chartData[$i+1])){ 
     $chartData[$i+1] = array(); 
     $chartData[$i+1][] = $a[$i]['day']; 
    } 
    $chartData[$i+1][count($chartData[0])-1] = $a[$i]['goals']; 
    } 
} 

這應該給你你需要有所需的圖表格式數據表:

[ 
    ["Day","team1","team2"] 
    [1,3,1] 
    [2,1,2] 
    [3,0,4] 
] 

在天數(x軸)上爲每個球隊創建一條目標數(y軸)的線。希望這有助於

+0

謝謝@ M31是的,它似乎我變得更困難通過創建一個類型的數組,但你的解決方案,我終於解決了,唯一的問題是用'is_array'檢查,它提供了一個'未定義offset'錯誤。我通過在之前添加'isset'檢查來解決這個問題,並且在未設置的情況下初始化數組位置。 –