Форматирование массива из бд
имеется массив данных 1 поля из Базы Данных и имеет вид
[{"summary_elapsed":"12"},{"summary_elapsed":"11"},{"summary_elapsed":"234"},{"summary_elapsed":"123"}]
Мне нужно отформатировать строку и получить данные в таком виде:
["11","12","234","123"]
После вывода данных из бд они идут через json_encode() в js скрипт. Помогите регулярное выражение написать пожалуйста, или есть другой способ?
Ответы (1 шт):
json это формат передачи данных, совместимый с объектной нотацией Javascript. для работы с ним в различных языках программирования существует набор различных функций. А вот регулярные выражения, это инструмент обработки текста и поиска в нем "шаблонов". Конечно, поскольку json эт структурированный объект, то вы можете составить регулярные выражение для извлечения данных, но это в корне не верный путь, и использовать следует именно существующие функции.
в вашем случае после извлечения данных из БД следует их декодировать, получить значения по имени поля и закодировать их обратно в массив.
$data = json_decode($jsonString, true);
$values = array_column($data, 'summary_elapsed');
$json_values = json_encode($values);
Если ваша СУБД позволяет обрабатывать JSON данные, то извлечь непосредственные значения можно напрямки в SQL-запросе.