PHP从数据库查询中添加数组的密钥
问题描述:
想知道您是否可以帮助我。我正在查询一张表,用H轴时间和V轴计数填充一个图表,并试图根据数据库表中的服务器动态地向图表添加过滤器。在这一刻它的静态。PHP从数据库查询中添加数组的密钥
我用下面的代码来查询数据库和系列添加到图表
$results = array();
foreach(\IPS\Db::i()->select('*', 'stats', $where, 'time ASC') as $row)
{
$value = '_'.$row['server'];
if(!isset($results[ $row['time'] ]))
{
$results[ $row['time'] ] = array(
'time' => $row['time'],
'_64' => 0,
'_66' => 0
);
}
//$results[ $row['time'] ][$value] = 0;
if ($value == '_64')
{
$results[ $row['time'] ]['_64'] = $row['value_1'];
}
elseif($value == '_66')
{
$results[ $row['time'] ][ '_66' ] = $row['value_1'];
}
}
return $results;
,并添加过滤器
$chart->addSeries('_66', 'number');
$chart->addSeries('_64', 'number');
我试图让它动态的做
foreach(\IPS\Db::i()->query("SELECT DISTINCT server FROM stats ORDER BY server") as $row)
{
$value = '_'.$row['server'];
$chart->addSeries($value, 'number');
}
和
$value = '_'.$row['server'];
if(!isset($results[ $row['time'] ]))
{
$results[ $row['time'] ] = array(
'time' => $row['time'],
$value => 0,
);
}
$results[ $row['time'] ][$value] = $row['value_1'];
但这并没有以任何方式工作。我想我会添加到阵列完全错误。有什么建议吗?
阵列应该是这样的
array (size=8)
1504025011 =>
array (size=3)
'time' => int 1504025011
'_64' => int 2
'_66' => int 0
1504094803 =>
array (size=3)
'time' => int 1504094803
'_64' => int 0
'_66' => int 14
而是
array (size=8)
1504025011 =>
array (size=2)
'time' => int 1504025011
'_64' => int 2
1504094803 =>
array (size=2)
'time' => int 1504094803
'_66' => int 14
答
我设法使它工作进行到底。最后简单到了。 (通常情况下)当然我之前尝试过,并没有工作。一定错过了一些东西。
我使用此代码将键/值添加到数组。
foreach(\IPS\Db::i()->query("SELECT DISTINCT(server) AS Server FROM stats ORDER BY Server DESC;") as $rows)
{
$value = '_' .$rows['Server'];
$results[ $row['time'] ][$value] = 0;
}