Добавление фигурных скобок на массив строк PHP

Вы также можете попробовать стандартный метод sql un-pivoting, используя последовательность логики со следующим кодом. Следующий код имеет 3 шага:

  1. создает несколько копий для каждой строки с использованием cross join (также создавая поле темы в этом случае)
  2. создает столбец «метки» и заполняет соответствующие значения с помощью выражения case (например: если субъектом является наука, тогда выберите значение из научного столбца)
  3. удалять любые нулевые комбинации (если существует, выражение таблицы можно полностью избежать, если в базовой таблице строго нет нулевых значений)
     select *
     from 
     (
        select name, subject,
        case subject
        when 'Maths' then maths
        when 'Science' then science
        when 'English' then english
        end as Marks
    from studentmarks
    Cross Join (values('Maths'),('Science'),('English')) AS Subjct(Subject)
    )as D
    where marks is not null;
    
-2
задан baimWonk 19 February 2019 в 16:31
поделиться

3 ответа

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
ответ дан Nigel Ren 19 February 2019 в 16:31
поделиться

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

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

print_r(json_encode($temp)); // {"Red":1,"Blue":2,"Green":2}
0
ответ дан StefanLupuWT 19 February 2019 в 16:31
поделиться

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

.
0
ответ дан Quasimodo's clone 19 February 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: