Добавление фигурных скобок на массив строк PHP - PullRequest
0 голосов
/ 19 февраля 2019

Я ищу способ добавить фигурные скобки {} в мой массив строк:

print_r(json_encode($temp));

temp = [{"Red":1,"Blue":2,"Green":2}]

Я создаю эти значения с помощью:

$query_final = (my query);
$query = $this->db->query($query_final)->result_array();
$res = array_count_values(array_column($query, 'status'));
array_push($temp, $res);
print_r(json_encode($temp));

становиться:

print_r(json_encode($temp));

temp = [{"Red": "1"},{"Idle":"2"},{"Overload":"2"}]

До сих пор я пытался использовать implode:

$temp = implode(",", $temp);
print_r(json_encode($temp));

, но это просто дает ошибку, есть ли способ сделать правильную вещь?

Ответы [ 3 ]

0 голосов
/ 19 февраля 2019

Вы можете использовать json_encode для массива, чтобы получить JSON.Вот так:

$temp = ['Red' => 1,
'Blue' => 2,
'Green' => 2
];

print_r(json_encode($temp)); // {"Red":1,"Blue":2,"Green":2}
0 голосов
/ 19 февраля 2019

array_count_values() возвращает список значений и количество раз, которое они встречаются, поэтому простое использование array_push() добавит весь этот массив как 1 элемент и выдаст вам полученные результаты.

Вместо этого,Вы можете добавлять результаты по одному в массив $temp и получать результаты после ...

$temp = [];
$res = array_count_values(array_column($query, 'status'));
foreach ( $res as $key=>$item )   {
    $temp[] = [$key => $item];
}
print_r(json_encode($temp));
0 голосов
/ 19 февраля 2019

Расшифруйте свой JSON с json_decode($temp, true);

...