Uncaught Error: [] operator not supported for strings in // как лучше сделать
Ку, в общем есть метод - в котором я записываю данные в массив, с помощью добавление нового элемента [], однако при расширении - этот метод начал давать ошибку: Uncaught Error: [] operator not supported for strings in, я понял что скорее всего это из за, 'status' => 'Pending' и попробовал переделать на 'status' => array('status' => 'Pending') однако ошибка не ушла, поэтому прошу помочь решить проблему координально, подскажите как лучше организовать работу данного метода:
Текст ошибки:
Fatal error: Uncaught Error: [] operator not supported for strings in /Users/leonidbasov/Projects/zzz.lk2.ru/engine/direct.php:920 Stack trace: #0 /Users/leonidbasov/Projects/zzz.lk2.ru/module/logs/logs.php(197): engine\direct::getKeyStatistics(1) #1 /Users/leonidbasov/Projects/zzz.lk2.ru/module/logs/logs.php(41): module\logs\logs::defoult() #2 [internal function]: module\logs\logs::Start() #3 /Users/leonidbasov/Projects/zzz.lk2.ru/engine/systems.php(34): call_user_func('\module\logs\lo...') #4 /Users/leonidbasov/Projects/zzz.lk2.ru/index.php(8): engine\systems::Start() #5 {main} thrown in /Users/leonidbasov/Projects/zzz.lk2.ru/engine/direct.php on line 920
Код метода:
public static function getKeyStatistics($site_id): array
{
$result = array();
$site = systems::$db->select('site', ['id', 'domen', 'region', 'direct_search_id'], ['id' => $site_id])[0];
$geo = systems::$db->select('cities', ['GeoRegionId'], ['i' => $site['region']])[0];
$data = systems::$db->select('update', ['data'], ['type' => 'report'])[0]['data'];
if (isset($site['direct_search_id'])) {
$home = $_SERVER['DOCUMENT_ROOT'];
$patchname = "{$home}/common/direct/domens/{$site['domen']}/direct/";
$campaing_id = $site['direct_search_id'];
$namefile = "keywords@{$site['domen']}@{$campaing_id}.json";
if (file_exists($patchname . $namefile)) {
$json_keywords = file_get_contents($patchname . $namefile);
$keywords = json_decode($json_keywords, true);
$array_keywords = array();
foreach ($keywords['Keywords'] as $key => $keyword) {
array_push($array_keywords, $keyword['Keyword']);
}
$array_keywords = array_chunk($array_keywords, 100);
$count = 1;
foreach ($array_keywords as $key => $array_keyword) {
//добавить сюда количество отчетов в очереди и так же добавить в условие о не более 5 отчетов
if ($count <= 5) {
$report_id = self::greatStaticReport($array_keyword, $geo['GeoRegionId']);
$data[] = array(
'id' => $report_id['data'],
'time' => time(),
'site_id' => $site_id,
'status' => 'Pending'
);
} else {
$result['error'] = "Более 500 ключевых слов";
}
}
$data = serialize($data);
systems::$db->update('update', ['data' => $data], ['type' => 'report']);
} else {
$result['error'] = "Нет файла с ключевыми словами по адресу: {$patchname}{$namefile}";
return $result;
}
} else {
$result['error'] = "Нет ID компании в базе";
return $result;
}
return array();
}
920 строчка это начало этой функнции:
$data[] = array(
'id' => $report_id['data'],
'time' => time(),
'site_id' => $site_id,
'status' => 'Pending'
);
Заранее спасибо за советы (ранее я использовал аррау пуш, но в итоге она тоже работает оень странно.