0

我正在尝试以 Highcharts 用来生成数据的多系列图表的格式获取我的数据数组。

我的数据数组是:

Array ( 
[answer1] => Array ( [SubQuestion 1] => 3 [SubQuestion 2] => 1 ) 
[answer2] => Array ( [SubQuestion 1] => 2 [SubQuestion 2] => 2 ) 
[answer3] => Array ( [SubQuestion 1] => 1 [SubQuestion 2] => 1 ) 
[answer4] => Array ( [SubQuestion 1] => 1 [SubQuestion 2] => 2 ) 
[answer5] => Array ( [SubQuestion 1] => 0 [SubQuestion 2] => 1 )
)

我需要将其转换为 Highcharts 的这种格式:

$chartdata = array(
array("name" =>"SubQuestion 1","data"=>  array(3,2,1,1,0) ),
array("name" =>"SubQuestion 2","data"=>  array(1,2,1,2,1) )
);

谁能指出我正确的方向,如何遍历我的数组以创建 HighCharts 格式的新数组?

感谢所有的帮助。我只是想关闭循环并发布正确答案的略微修改版本: $chartdata = array(); foreach($series as $key1 => $value1){ $i=0; foreach($value1 as $key2 => $value2){ $chartdata[$i]['name'] = $key2; $chartdata[$i]['data'][] = $value2; $i++; } }

4

1 回答 1

1
$myarray = Array ( 
'answer1' => Array ( 'SubQuestion 1'=> 3 , 'SubQuestion 2' => 1 ) ,
'answer2'=> Array ( 'SubQuestion 1' => 2, 'SubQuestion 2' => 2 ) ,
'answer3' => Array ( 'SubQuestion 1' => 1, 'SubQuestion 2' => 1 ) ,
'answer4' => Array ( 'SubQuestion 1' => 1, 'SubQuestion 2' => 2 ) ,
'answer5' => Array ( 'SubQuestion 1' => 0, 'SubQuestion 2' => 1 )
);


$temp = array();
$chartdata = array();
foreach($myarray as $key1 => $value1){
  foreach($value1 as $key2 => $value2){
   if(!in_array($key2, $temp)){
    $temp[] = $key2;
   }
   $chartdata[array_search($key2, $temp)]['name'] = $key2;
   $chartdata[array_search($key2, $temp)]['data'][] = $value2;
  }
}
echo '<pre>';
print_r($chartdata);
于 2013-02-18T16:29:59.490 回答