将数据库中的JSON字符串转换为PHP数组问题


Convert JSON string from database to PHP array problems

我正在尝试将这个JSON字符串转换为PHP数组。JSON字符串存储在我的数据库中,我已经检索到了它

{
  "users": "user1, user2"
}

我需要将上面的JSON字符串转换为一个数组,如下所示,但要动态转换。

$myArray = array("user1", "user2")

这是我的代码:

  $row = mysqli_fetch_array($result);
  $json = $row['json'];
  $decode = json_decode($json);
  $list = $decode->users;
  $myArray = explode(',', $list);

这段代码在我的程序中不起作用,但当我用print_r打印数组时,它看起来与从非动态字符串打印$myArray时完全相同。这是一个令人担忧的问题,因为非动态字符串是有效的。

用户名之间的分隔符是逗号+空格,爆炸时只使用逗号,所以第二个和后面的用户名在开头有一个空格。尝试:

$myArray = explode(', ', $list);

我建议您更改JSON结构,以便存储实际的数组,而不是逗号分隔的列表。

{
    "users": ["user1", "user2"]
}

更好的方法是更改数据库结构,使用户位于一个真实的表中,而不是用JSON封装。这将允许您轻松高效地执行搜索用户的查询。