我正在努力在特定点将值添加到数组中。我要找的是创建和空数组,从数据库中获取结果集,并根据它们是全局的还是本地的创建下面列出的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 );
}
}