如何在这种代码中添加数组项?

时间:2017-09-19 05:55:29

标签: php json

我正在尝试使用MySql PHP生成以下内容。

原始PHP看起来像这样:

$array['rows'][] = array('c' => array( array(v=>'Concept-1'), array('v'=>3.28),array('v'=>4.28),array('v'=>5.28)) );
$array['rows'][] = array('c' => array( array(v=>'Concept-2'), array('v'=>1.28),array('v'=>1.28),array('v'=>4.28)) );
$array['rows'][] = array('c' => array( array(v=>'Concept-3'), array('v'=>5.68),array('v'=>6.45),array('v'=>1.58)) );

现在我想弄清楚如何动态生成等效代码。

所以我试过(有6行):

for ($i=0; $i<6; $i++){
    ${"temp$i"} = array();
    foreach ($alltheraces as $key => $value){
      $t = $alltheraces[$key][$i][1];
      array_push(${"temp$i"}, $t);
    }
    $array['rows'][] = array('c' => array( array(v=>'Concept-'),${"temp$i"}));
  }
  echo json_encode($array);

但现在的问题是$ temp是一个数组,因此我的Jason输出看起来像这样,'v'缺失了。我之前没有使用过面向对象的PHP,所以在这里搞定了怎么做:(:

rows: [
    {
    c: [
    {
      v: "Concept-"
    },
    [
      2.8775,
      3.11,
      2.91,
      1.77,
      3.3
    ]
  ]
},

1 个答案:

答案 0 :(得分:0)

解决。

for ($i=0; $i<6; $i++){
    ${"temp$i"} = array();
    array_push(${"temp$i"}, array(v=>"Concept-$i"));
    $st="Concept-$i";
    foreach ($alltheraces as $key => $value){
      $t = array(v=>$alltheraces[$key][$i][1]);
      array_push(${"temp$i"}, $t);
      $st .= ",".$alltheraces[$key][$i][1];
    }
    $array['rows'][] = array('c' => ${"temp$i"});
    array_push($data, $st);

  }