Форматирование массива из бд

имеется массив данных 1 поля из Базы Данных и имеет вид

[{"summary_elapsed":"12"},{"summary_elapsed":"11"},{"summary_elapsed":"234"},{"summary_elapsed":"123"}]

Мне нужно отформатировать строку и получить данные в таком виде:

 ["11","12","234","123"]

После вывода данных из бд они идут через json_encode() в js скрипт. Помогите регулярное выражение написать пожалуйста, или есть другой способ?


Ответы (1 шт):

Автор решения: teran

json это формат передачи данных, совместимый с объектной нотацией Javascript. для работы с ним в различных языках программирования существует набор различных функций. А вот регулярные выражения, это инструмент обработки текста и поиска в нем "шаблонов". Конечно, поскольку json эт структурированный объект, то вы можете составить регулярные выражение для извлечения данных, но это в корне не верный путь, и использовать следует именно существующие функции.

в вашем случае после извлечения данных из БД следует их декодировать, получить значения по имени поля и закодировать их обратно в массив.

  $data = json_decode($jsonString, true);
  $values = array_column($data, 'summary_elapsed');
  $json_values = json_encode($values);

Если ваша СУБД позволяет обрабатывать JSON данные, то извлечь непосредственные значения можно напрямки в SQL-запросе.

→ Ссылка