2017-12-18 83 views
3

我想創建一個多個陣列的highchart設爲您可以在這裏看到HighChart Demo創建highcharts

PHP代碼從數據庫中檢索數據的PHP數組。

$sql = <<< SQL 
      SELECT TOP (
      [miles] 
      ,[status] 
      FROM [database].[dbo].[portal] 
    SQL; 

$result = $conn->prepare($sql); 
$result->execute(); 
$rowCount = $result->fetchColumn(); 

$dataset = array('name' => 'Naam'); 

while($row = $result->fetch(PDO::FETCH_ASSOC)){ 

    $data[] = $row['automillage']; 
} 


array_push($dataset, $data); 
echo json_encode($dataset,JSON_NUMERIC_CHECK); 

我陣列的電流輸出

 { 
     0: [ 
      1000, 
      2297, 
      1500, 
      3301, 
      ], 
     name: "Naam" 
     } 

但我真正想要的是與數據開始,而不是從0開始:

  { 
     Data: [ 
      1000, 
      2297, 
      1500, 
      3301, 
      ], 
     name: "Naam" 
     } 

而且我想知道我怎麼能在一個數組中獲得兩個數據序列。

Tnx to @bassxzero我現在有正確的輸出。

但我想實現一件事。獲得兩個數據系列在一個陣列中像實例:

series: [{ 
    name: 'Tokyo', 
    data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] 
}, { 
    name: 'London', 
    data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] 
}] 

當我嘗試json_decode兩個數組,我得到一個錯誤在編譯的代碼。

- 錯誤代碼是:json_decode()預計參數1是字符串,數組給定

$dataset['Data'] = $data; 
$dataset2['Data'] = $data2; 
$join[] = json_decode($dataset, true); 
$join[] = json_decode($dataset2, true); 


echo json_encode($join,JSON_NUMERIC_CHECK); 

之後,我想和JSON來更新它。我的代碼是這樣的:

  var chart = new Highcharts.chart('container', { 
      chart: { 
       type: 'line' 
      }, 
      title: { 
       text: 'Monthly Average Temperature' 
      }, 
      subtitle: { 
       text: 'Source: WorldClimate.com' 
      }, 
      xAxis: { 
       categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
      }, 
      yAxis: { 
       title: { 
        text: 'Temperature (°C)' 
       } 
      }, 
      plotOptions: { 
       line: { 
        dataLabels: { 
         enabled: true 
        }, 
        enableMouseTracking: false 
       } 
      }, 
      series: [{ 
       name: 'Tokyo', 
       data: '' 
      }, { 
       name: 'London', 
       data: '' 
      }] 
     }); 

     function chartUpdate() { 
      $.getJSON("dbcon/connection - Copy.php", function (dataset) { 
       chart.update({ 
        series: [{ 
         data: dataset 
        }] 
       }); 
      }); 
     } //end chartUpdate 
+3

變化'array_push ($的數據集,$數據);''到$集[ '數據'] = $數據;' – bassxzero

+0

該死:)非常感謝您的回答。 你也知道我怎麼可以與其他值這陣重複,所以我可以得到一系列的名字:「名」,數據:[數據],名稱:「名字2」,數據:[數據2]與陣列? 看到我更新的問題。 – Sergio

回答

2

注意: - array_push()創建數字索引,而您需要關聯索引。

所以,相反的: -

array_push($dataset, $data); 

做到: -

$dataset['Data'] = $data; 

通在一個陣列輸出兩個數組:

$dataset['data'] = $data; 
$dataset2['data'] = $data2; 
$join[] = json_decode(json_encode($dataset), true); 
$join[] = json_decode(json_encode($dataset2), true); 

echo json_encode($join,JSON_NUMERIC_CHECK); 
+0

Sergio你檢查了答案嗎? –

+0

對不起,我看到它太晚了。已經在這篇文章中通過了答案。感謝您的時間和支持。 – Sergio

1

你應該用一個鍵來添加數據,而不是將它推到數組中。

$dataset['Data'] = $data 

編輯:@bassxzero擊敗了我在它的評論。

+0

謝謝你的回答。你知道我可以將第二個序列放入同一個數組而不用創建新的數組嗎?看到我更新的問題。謝謝。 – Sergio

+0

@Sergio檢查我的答案 –

1

首先感謝你的答案。

用於獲取所述陣列中的右輸出的答案是感謝名單到bassxzero:

Change: array_push($dataset, $data); to $dataset['Data']= $data; 

通過在一個陣列輸出兩個數組答案:

$dataset['data'] = $data; 
$dataset2['data'] = $data2; 
$join[] = json_decode(json_encode($dataset), true); 
$join[] = json_decode(json_encode($dataset2), true); 

echo json_encode($join,JSON_NUMERIC_CHECK); 
+0

我已經嘗試過了,但是如果我不使用兩個變量,我不會得到我期待的結果。 我要實現這一點:https://ibb.co/bxuWN6 兩個變量,我能夠使它發揮作用。 – Sergio

相關問題