/** * @param string $zone * @param string $date_start * @param string $date_end */ public function actionGetRegistrantTableStatistic($zone = 'ru', $date_start = 'NOW', $date_end = 'NOW') { $controller_statistic = new StatisticController(StatisticController::STATISTIC_REGISTRANT, 1); $data = $controller_statistic->getDateToTable($zone, $date_start, $date_end); $return_array = []; foreach ($data as $item) { $provider_info = array('id' => $item['id'], 'registrant' => $item['item'], 'start_value' => $item['start_count'], 'end_count' => $item['end_count'], 'zone' => $zone); array_push($return_array, $provider_info); } print_r($return_array); }
/** * * @param string $zone * @param string $date_start * @param string $date_end * @return array * @throws Exception */ public function getDateToTable($zone, $date_start, $date_end) { $date = StatisticController::checkDate($date_start, $date_end, $this->default_interval); $order_column = 'count DESC'; if ($this->statisic_type == StatisticController::STATISTIC_REGRU) { $order_column = 'value DESC'; } $start_info = $this->getQuery()->getZone($zone)->getNotMoreDate($date['start_date'])->all(); $end_info = $this->getQuery()->getZone($zone)->getNotMoreDate($date['end_date'])->orderBy($order_column)->all(); $start_count_array = []; /** * @var AbstractStatistic $start_info_item */ foreach ($start_info as $start_info_item) { $start_count_array[$start_info_item->getAggregateItem()] = $start_info_item->count; } $return_array = []; $i = 1; /** * @var AbstractStatistic $end_info_item */ foreach ($end_info as $end_info_item) { $start_value = 0; if (array_key_exists($end_info_item->getAggregateItem(), $start_count_array)) { $start_value = $start_count_array[$end_info_item->getAggregateItem()]; } $provider_info = array('id' => $i++, 'item' => $end_info_item->getAggregateItem(), 'start_count' => $start_value, 'end_count' => $end_info_item->count, 'end_item' => $end_info_item, 'zone' => $zone); array_push($return_array, $provider_info); } return $return_array; }