mysql — PHP добавляет ключ к массиву из запроса к базе данных

Хотите знать, если вы можете мне помочь. Я запрашиваю таблицу для заполнения графа с осью времени H и осью счета V, и я пытаюсь динамически добавлять фильтры в граф на основе серверов в таблице базы данных. В этот момент его статика.

Я использую фильтры для выбора

я использую следующий код для запроса базы данных и добавить серию на график

$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

0

Решение

Мне удалось заставить это работать в конце. Был простой в конце. (Обычно это так) Конечно, я пробовал это раньше и не работал. Должно быть, что-то пропустил.

Я использовал этот код для добавления ключей / значений в массив.

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]