php Недопустимое смещение при добавлении в массив - PullRequest
0 голосов
/ 30 января 2019

Поэтому я пытаюсь изменить имеющийся у меня массив;

  +rows: array:31 [▼
    0 => array:2 [▼
      0 => "20190101"
      1 => "5"
    ]
    1 => array:2 [▼
      0 => "20190102"
      1 => "15"
    ]
    2 => array:2 [▼
      0 => "20190103"
      1 => "17"
    ]

Чтобы изменить индекс 0 каждой строки на объект Carbon DateTime для дальнейшей обработки.

Теперь яхотелось бы получить вывод в формате json, но в настоящее время я даже не могу избавиться от ошибки Illegal offset type ....

Код, который я использую для получения данных (из GoogleAnalytics), являетсяfollwing:

$get_stats = Analytics::performQuery(
    Period::create(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth()),
    'ga:users',
    [
        'dimensions' => 'ga:date',
        'samplingLevel' => 'HIGHER_PRECISION',
        'include-empty-rows' => true
    ]
);

Это возвращает много кода, но я просто беру $get_stats->rows (см. выше этот вывод).

Затем я создаю новый массив, определенный как $stats = [];.

Цикл повторяется по $get_stats->rows, поэтому я могу «изменить» данные в массиве и добавить их во вновь созданный массив.

foreach ($get_stats->rows as $value)
{
    $stats[] = [Carbon::createFromFormat('Ymd', $value[0]) => $value[1]];
}

Однако я получаю (всегда) ошибка Illegal offset type, на линии с $stats[] = [Carbon::createFromFormat('Ymd', $value[0]) => $value[1]];

Может кто-нибудь помочь мне с этим?Я понятия не имею, почему это происходит, когда я пытаюсь добавить массив в массив.Я пытался array_push(), дает ту же проблему, также array_merge имеет ту же проблему ...

1 Ответ

0 голосов
/ 30 января 2019

Это происходит потому, что Carbon::createFromFormat('Ymd', $value[0]) возвращает Carbon объект , а объекты не являются допустимыми индексами массива.Я не уверен, чего вы пытаетесь достичь, выполнив это преобразование на ключе. Кажется, что простой

$stats[] = [$value[0] => $value[1]];

или даже

$stats[$value[0]] = $value[1];

может быть более полезным для вас,Вы всегда можете выполнить преобразование в объект Carbon, если хотите отобразить данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...