Приведение в порядок JSON-подобной строки с помощью PHP и str_replace - PullRequest
0 голосов
/ 23 мая 2019

Я добавляю значение поля inout в свою базу данных, структура которого имеет следующую строку:

[{\"value\":\"Product 1\"},{\"value\":\"Product 2\"},{\"value\":\"Product 3\"}]

Теперь я хочу сделать его немного более читабельным в базе данных и убрать строку извсе ненужные символы, примерно так:

Product 1, Product 2, Product 3

Очевидно, я мог бы сделать это следующим способом:

str_replace(',',', ',str_replace('[','',str_replace(']','',str_replace('{\"value\":\"','',str_replace('\"}','',$INPUT_FIELD)))));

Но это кажется немного неуклюжим.Что было бы более хорошим решением для этого?

Заранее спасибо!

РЕДАКТИРОВАТЬ

Var dumping $ _POST показывает мне это для определенного поля ввода:

["project_products_used"]=> string(135) "[{\"value\":\"Product 1\"},{\"value\":\"Product 2\"},{\"value\":\"Product 3\"}]" 

1 Ответ

1 голос
/ 23 мая 2019

просто json_decode его для массива и использования array_column и implode , чтобы получить желаемую строку:

<?php
$a = "[{\"value\":\"Product 1\"},{\"value\":\"Product 2\"},{\"value\":\"Product 3\"}]";
var_dump(implode(", ", array_column(json_decode($a), "value")));

выход: * +1010 *

string(31) "Product 1, Product 2, Product 3"

демо

...