用 PHP 和 str_replace 整理一个类似 JSON 的字符串

Tidying up a JSON-like string with PHP and str_replace

我正在将一个 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\"}]" 

只是 json_decode it to array and use array_column and implode 有一个你想要的字符串:

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

输出:

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

demo