PHP 从数据库查询中将键添加到数组

标签 php mysql invision-power-board

想知道你是否可以帮助我。我正在查询一个表以使用时间的 H 轴和计数的 V 轴填充图表,并且我尝试根据数据库表中的服务器动态地将过滤器添加到图表中。此时它是静止的。

I am using filters to select

我使用以下代码来查询数据库并将系列添加到图表中

$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;
        }

关于PHP 从数据库查询中将键添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46014530/

相关文章:

mysql - 连接表并根据值将同一列获取到更多列

php - 如何从外部从 IPB 注销用户?

php - 使用 PHP 将 CSV 文件上传到数据库时出错

symfony - 来自 php.ini 的 MAMP/Symfony : MAMP overrides date. 时区设置,Symfony 失败

mysql 触发器变量

javascript - 如何内联注册 jQuery 点击处理程序?

javascript - 日期转换 JavaScript 到 PHP

javascript - 如果文本框为空则发出警报

mysql - 如何在sql中选择特定的表?