2017-11-23 5 views
0

currencylayer APIからのデータを視覚化しようとしています。私は、一例として、これを使用しようとしています
:ここhttp://bl.ocks.org/Caged/6476579データを視覚化するためのPHP D3の組み合わせ

は私のPHPコードです:

<?php 
$response = json_decode(file_get_contents("http://apilayer.net/api/live?access_key=xxxxxxxxxxx&format=1", true)); 

$keys_array = array(); 
$values_array = array(); 
$arra = array(); 
foreach($response->quotes as $key => $value) { 
// echo "$key is at $value\n"; 
//  array_push($keys_array, substr($key,3)); 
// array_push($values_array,$value); 

    array_push($arra,{"letter":substr($key,3),"frequency":$value}); 
} 
print_r($arra); 
?> 

私はの形式でデータを達成しようとしています:

[ 
    {letter: "A", frequency: .08167}, 
    {letter: "B", frequency: .01492}, 
    {letter: "C", frequency: .02780}, 
    {letter: "D", frequency: .04253}, 
    {letter: "E", frequency: .12702}, 
    {letter: "F", frequency: .02288}, 
    {letter: "G", frequency: .02022}, 
    {letter: "H", frequency: .06094}, 
    {letter: "I", frequency: .06973}, 
    {letter: "J", frequency: .00153}, 
    {letter: "K", frequency: .00747}, 
    {letter: "L", frequency: .04025}, 
    {letter: "M", frequency: .02517}, 
    {letter: "N", frequency: .06749}, 
    {letter: "O", frequency: .07507}, 
    {letter: "P", frequency: .01929}, 
    {letter: "Q", frequency: .00098}, 
    {letter: "R", frequency: .05987}, 
    {letter: "S", frequency: .06333}, 
    {letter: "T", frequency: .09056}, 
    {letter: "U", frequency: .02758}, 
    {letter: "V", frequency: .01037}, 
    {letter: "W", frequency: .02465}, 
    {letter: "X", frequency: .00150}, 
    {letter: "Y", frequency: .01971}, 
    {letter: "Z", frequency: .00074} 
] 

場合上記の形式で値を取得したら、PHP変数をd3 data変数に代入してそれに応じて視覚化することができます。

次のように上記のPHPコードは、エラーを与えている:親切

Parse error: syntax error, unexpected '{' in file.php on line 18 

、D3に可変の誤差及び割り当てを固定に助け。

答えて

1

あなたのJSONがPHPで見つからない場合、JSONはjavascriptオブジェクトのアノテーションであり、PHPでは動作しません。 PHPで配列を使用し、次にそれらをjsonとしてエンコードする必要があります。

<?php 
$response = json_decode(file_get_contents("http://apilayer.net/api/live?access_key=xxxxxxxxxxx&format=1", true)); 

$keys_array = array(); 
$values_array = array(); 
$arra = array(); 
foreach($response->quotes as $key => $value) { 
// echo "$key is at $value\n"; 
//  array_push($keys_array, substr($key,3)); 
// array_push($values_array,$value); 

    $arra[] = [ 
     "letter" => substr($key,3), 
     "frequency" => $value 
    ]; 
} 
print_r($arra); 

// echo json_encode($arra); // to convert the array to json 
?> 
+0

うわー!これはうまくいきました...それはjavascript d3に変数を割り当てることは可能ですか? –

+0

エンコード後、javascriptで使用することができます。 –

+0

はい、[JSON.parse()](https://www.w3schools.com/js/js_json_parse.asp)を参照してください – claudio

1

私は、そのファイルのconentを持っていけないので、それは問題を解決することができます天気を予測することはできませんのでジャスト

array_push($arra,array("letter"=>substr($key,3),"frequency"$value)); 

array_push($arra,{"letter":substr($key,3),"frequency":$value}); 

からあなたの行を変更します。

関連する問題