2017-02-13 4 views
0

私のデータの配列例があり、JSONを使ってGoogle Chartsに挿入する必要があります。しかし、Jsonの各データ行をどのようにループで作ることができるかを知りたいので、その特定の値が定義されていないとエラーは発生しません。私は、静的なJSONの行を持っている瞬間JSON行のPHPループ

$dataArray=array('item1;item2;item3;item4;item5','item2;item4;item3','item2;item3','item5;item4','item1;item4;item2'); 

$arrayOUT = []; 
    foreach ($dataArray as $a) { 
    $t = explode(";", $a); 

    foreach ($t as $y) { 
     if (!isset($arrayOUT[$y])) { 
     $arrayOUT[$y] = 0; 

     } 
     $arrayOUT[$y] += 1; 
    } 
    } 

echo '{ 
    "cols": [ 
     {"id":"","label":"Data","pattern":"","type":"string"}, 
     {"id":"","label":"Count","pattern":"","type":"number"} 
     ], 
    "rows": [ 
     {"c":[{"v":"item1","f":null},{"v":'.$arrayOUT['item1'].',"f":null}]}, 
     {"c":[{"v":"item2","f":null},{"v":'.$arrayOUT['item2'].',"f":null}]}, 
     {"c":[{"v":"item3","f":null},{"v":'.$arrayOUT['item3'].',"f":null}]}, 
     {"c":[{"v":"item4","f":null},{"v":'.$arrayOUT['item4'].',"f":null}]}, 
     {"c":[{"v":"item5","f":null},{"v":'.$arrayOUT['item5'].',"f":null}]} 
     ] 
}'; 

しかし、私はループで行わ行を持っていると思います。たとえば、私の配列にitem4を持っていなければ、この行は作成されません。したがって、既存のデータを含む行のみが作成されます。

echo '{ 
    "cols": [ 
     {"id":"","label":"Data","pattern":"","type":"string"}, 
     {"id":"","label":"Count","pattern":"","type":"number"} 
     ], 
    "rows": [ 

ループ動的行 { "C" を作成するには、この行:[{ "V": "項目"、 "F":ヌル}、{ "V":」。$ arrayOUT [ 'アイテム' を]、 'f':null}]}、

 ] 
}'; 
+0

PHPの 'json_encode()'ビルドの配列から、あなたのJSONを作成するために使用し、手でJSONを作成しないでください。 –

答えて

0

arrayOUTオブジェクトにループを作成できます。
私はあなたの例を編集した:

$dataArray=array('item1;item2;item3;item4;item5','item2;item4;item3','item2;item3','item5;item4','item1;item4;item2'); 

$arrayOUT = []; 

foreach ($dataArray as $a) { 
    $t = explode(";", $a); 

    foreach ($t as $y) { 
     if (!isset($arrayOUT[$y])) { 
      $arrayOUT[$y] = 0; 

     } else { 
      $arrayOUT[$y] += 1; 
     } 
    } 
} 

$rows = ""; 

forEach($arrayOUT as $item=>$count){ 
    $rows = $rows."{'c':[{'v':'{$item}','f':null},{'v':'{$count}','f':null}]},"; 
} 

echo '{ 
    "cols": [ 
     {"id":"","label":"Data","pattern":"","type":"string"}, 
     {"id":"","label":"Count","pattern":"","type":"number"} 
     ], 
    "rows": [ 
     '.$rows.' 
     ] 
}'; 
+0

ありがとう、すごくうまくいった! –