Я использую этот код в своем объекте, чтобы получить данные API Google Analytics
$this->end_date = date('Y-m-d', strtotime('-1 days'));
$this->start_date = date('Y-m-d', strtotime('-27 days', strtotime($this->end_date)));
$this->ga->requestReportData(xxxx,array('date'), array('sessions'), null, '', $this->start_date, $this->end_date);
foreach($this->ga->getResults() as $result) {
$this->date = $result->getDate();
$this->visits = $result->getSessions();
$this->date = strtotime($this->date);
$this->date = date("d-m-Y", $this->date);
$i++;
$this->dateArray .= "{date: '". $this->date ."', visits: ". $this->visits . $i ."},";
}
$this->dateArray = substr($this->dateArray, 0, -1);
По какой-то причине некоторые даты не в порядке, что я делаю неправильно или это нормально, и есть ли другой тип исправления для этого?
Это мой вывод для $ this-> ga-> getResults ()
Array ( [20180117] => 0 [20180118] => 0 [20180119] => 0 [20180120] => 0 [20180121] => 0 [20180122] => 0 [20180124] => 0 [20180125] => 0 [20180127] => 0 [20180128] => 0 [20180129] => 0 [20180131] => 0 [20180202] => 0 [20180204] => 0 [20180207] => 0 [20180208] => 0 [20180209] => 0 [20180210] => 0 [20180212] => 0 [20180126] => 1 [20180201] => 1 [20180203] => 1 [20180205] => 1 [20180211] => 1 [20180123] => 3 [20180206] => 5 [20180213] => 5 [20180130] => 31 )
API отчетов Google Analytics не гарантирует сортировку результатов, если вы не используете sort
оператор.
Попробуйте добавить sort=ga:date
на ваш запрос, и это должно работать.
Либо напишите свой код, чтобы предположить, что данные не отсортированы, и выполняйте сортировку самостоятельно.
Других решений пока нет …