Php 尝试将DQL查询放入Highcharts数组中,尽管数组已填充,但返回0

Php 尝试将DQL查询放入Highcharts数组中,尽管数组已填充,但返回0,php,symfony,highcharts,bundle,dql,Php,Symfony,Highcharts,Bundle,Dql,以下是代码中我的查询的var_转储: array (size=2) 0 => array (size=4) 0 => array (size=1) 'barbell_curl_1_weight' => int 15 1 => array (size=1) 'barbell_curl_1_weight' => int 20 2 => array (size=1) 'bar

以下是代码中我的查询的var_转储:

array (size=2)
  0 => 
    array (size=4)
  0 => 
    array (size=1)
      'barbell_curl_1_weight' => int 15
  1 => 
    array (size=1)
      'barbell_curl_1_weight' => int 20
  2 => 
    array (size=1)
      'barbell_curl_1_weight' => int 25
  3 => 
    array (size=1)
      'barbell_curl_1_weight' => int 20
我的问题是:

/**
 * @param User $user
 * @param String $col
 * @return array
 */
public function getStatsForStatsByDQL(User $user,  String $col)
{

    $parameters = (array('user' => $user,
    ));
    $em2 = $this->getDoctrine()->getManager()
        ->getRepository('AppBundle:ExerciseStats')
        ->createQueryBuilder('g')
        ->setParameters($parameters)
        ->where('g.user = :user')
        ->select('g.'. $col)
        ->setMaxResults(12)
        ->join('g.user', 'user')
        ->orderBy( 'g.'. 'timestamp','ASC')
        ->getQuery()->getResult(Query::HYDRATE_ARRAY);
    return $em2;
  }
正如您从var_转储中看到的,我正在获取所需的数据。下面是它的Highcharts函数:

/**
 * @return \Symfony\Component\HttpFoundation\Response
 * @Route ("user/stats", name="user_stats")
 */
public function chartAction()
{
    $user = $this->getUser();
    // Chart
    $query = $this->getStatsForStatsByDQL($user, 
ExerciseConsts::BARBELL_CURL_1_WEIGHT);


    $series = array($query, array("name" => "weight", "data" => 
$query));

    $ob = new Highchart();
    $ob->chart->renderTo('linechart');  
    $ob->title->text('Barbell Curl Weight');
    $ob->xAxis->title(array('text'  => "Workouts"));
    $ob->yAxis->title(array('text'  => "Weight"));
    $ob->series($series);

    return $this->render('user/stats.html.twig', array(
        'chart' => $ob
    ));
}
所以我得到的只是0。在xdebug中使用断点时,我得到以下信息:

1 = {array} [2]
  name = "weight"
  data = {array} [4]
  0 = {array} [1]
    barbell_curl_1_weight = 15
  1 = {array} [1]
    barbell_curl_1_weight = 20
  2 = {array} [1]
    barbell_curl_1_weight = 25
  3 = {array} [1]
    barbell_curl_1_weight = 20
如何提取权重并将其放入Highchart图表?Highcharts捆绑包的文档在这方面完全缺乏。如果有任何线索,请告诉我。谢谢

这里是json编码的var_转储($series,json_NUMERIC_CHECK)。也许这会有帮助:


字符串“[{”barbell_curl_1_weight:15},{”barbell_1_weight:20},{”barbell_curl_1_weight:25},{”barbell_1_weight:20},{”name:“weight”,“data”:[{”barbell_curl_1_weight:15},{”barbell_curl_1_1_weight:20},{“barbell_1_weight:25},{barbell_curl_=20}找到了解决方案。当我们处理多维数组时,Highcharts没有深入到第一个数组之外,第一个数组返回0。下面是我返回每个数组值的迭代:

 $temp = array();
    foreach($array as $k=>$v){
        if(is_array($v)){
            foreach($v as $key=>$value){
                $temp[] = $value;
            }
        }
    }

现在,我只需要用$query替换$temp,瞧,图表正确地呈现了所有值

您可以使用
$ob=json\u encode($ob,json\u NUMERIC\u CHECK)然后传递到序列我不太明白。我已经有$ob=new Highchart()。这到底是怎么回事?如果你能澄清一点,那就太好了。谢谢你的时间。我错了,应该是
$series=json\u encode($series,json\u NUMERIC\u CHECK)好的,但是$query去哪里了?由于$series现在被json_encode.remove
json_encode
替换,请告诉我highcharts脚本中前端ie(html)的内容,您可以使用它