Highcharts php数据数组


Highcharts php data array

我正在努力在特定点将值添加到数组中。我要找的是创建和空数组,从数据库中获取结果集,并根据它们是全局的还是本地的创建下面列出的PHP数组。问题是,无论我尝试什么,我不能得到数组看起来像下面。

值被替换,或者数组被替换,或者值被添加到错误的位置

这是我的空数组,我试图将每个结果集循环到数组中,然后在一天中售出多少。

$test = array();
foreach($globalDatabase as $value)
{
    $test['global'][] = array('name'=>$value->type, 'data' => array($value->day,$value->quantity) );
}
foreach($localDatabase as $value)
{
    $test['local'][] = array('name'=>$value->type, 'data' => array($value->day,$value->quantity) );
}

这是我想要的结果是这样的,这是我想要的输出格式以便与highcharts

兼容
    $test = array(
        'global'=>array( 
                array(
                    'name'=>'CARS', 
                    'data' => array(
                        array('mon',1),
                        array('tue',1)
                    )
                ),
                array(
                    'name'=>'BIKES', 
                    'data' => array(
                        array('mon',1),
                        array('tue',1)
                    )
                ),
                array(
                    'name'=>'BOATS', 
                    'data' => array(
                        array('mon',1),
                        array('tue',1)
                    )
                ),
        ),
        'local'=>array(                    
                array(
                    'name'=>'CARS', 
                    'data' => array(
                        array('mon',1),
                        array('tue',1)
                    )
                ),
                array(
                    'name'=>'BIKES', 
                    'data' => array(
                        array('mon',1),
                        array('tue',1)
                    )
                ),
        )
    );

我认为从表中拉出的数据行是'平坦'的,这意味着每一行只有一个值,每个值对应'类型','日期'和'数量',没有嵌套。按照这个假设,您可能只需要按照类似于以下的公共属性对数据进行分组:

$databases = array('global'=>$globalDatabase, 'local'=>$localDatabase);
$workData = array('global'=>array(), 'local'=>array());
foreach($databases as $dbType=>$workDb)
{
    foreach ($workDb as $value) {
        if(!array_key_exists($value->type, $workData[$dbType])) {
            $workData[$dbType][$value->type] = array();
        }
        $workData[$dbType][$value->type][] = array($value->day, $value->quantity);
    }
}
$test = array();
foreach ($workData as $type=>$workRow) {
    foreach ($workRow as $dataKey=>$dataRow) {
        $test[$type][] = array('name'=>$dataKey, 'data' => $dataRow );
    }
}