Пытаюсь разобраться с тем, как построить график при помощи расширения yii2-highcharts-widget, чтобы по оси X шли месяцы, а по оси Y Вот код из офф. доки:
echo Highcharts::widget([
'options' => [
'title' => ['text' => 'Fruit Consumption'],
'xAxis' => [
'categories' => ['Apples', 'Bananas', 'Oranges']
],
'yAxis' => [
'title' => ['text' => 'Fruit eaten']
],
'series' => [
['name' => 'Jane', 'data' => [1, 0, 4]],
['name' => 'John', 'data' => [5, 7, 3]]
]
]
]);
пытаюсь его для себя адаптировать. Получаю данные из модели вот так:
return self::find()->select([
'address',
'idinvite',
'cdate_int',
'fromwhere'
])
->where(
new Expression(
"idregion = :id_region "
. "AND fromwhere != :not_interested ",
[":id_region" => REGION_ID,
":not_interested" => self::NOT_INTERESTED]))
->orderBy("cdate_int DESC")->indexBy('address');
Данный запрос возвращает множество массивов вот такого вида:
array(4) {
["address"]=>
string(30) "examplename"
["idinvite"]=>
string(3) "188"
["cdate_int"]=>
string(10) "1536864790"
["fromwhere"]=>
string(1) "2"
}
Хочу сделать, чтобы по x шли месяцы (отдельно формирую массив с ними), а по y количество записей в столбце fromwhere
для каждого idinvite
. В name
я помещаю address
из запроса, а в data
хотел бы помещать сумму записей столбца fromwhere
, чтобы видеть сколько в каждом месяце создалось записей для каждого id.
Подскажите. как правильно это реализовать? Массив для графика сейчас формирую вот так:
public function getStatData() {
$invitesData = $this->findInviteWithViews()->asArray()->all();
$resultData = [];
foreach ($invitesData as $key => $value) {
$positions = [];
foreach ($value as $val) {
$positions[] = count($value['fromwhere']);
}
$resultData[] = [
'name' => $key,
'data' => $positions
];
}
return $resultData;
}
Но это делает кучу вот таких массивов
array(2) {
["name"]=>
string(32) "examplename"
["data"]=>
array(4) {
[0]=>
int(1)
[1]=>
int(1)
[2]=>
int(1)
[3]=>
int(1)
}
}
и весь график получается в одну полоску. Как исправить данный код?
UPD: данные содержащиеся в $resultData
:
Данные в $invitesData
:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
гугл исправно перебирал URL адреса на моем сайтено, почему то, с недавних пор, начал переходить по URL типа
Волею судьбы пришлось стать фронтендщиком и разобраться с ExtJsЕсть длительная процедура на php, которая вызывается из javascript
Уважаемые специалисты помогите с вопросомНа сайте есть форма регистрации, в качестве логина указывается E-mail, после заполнения полей формы...