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

将JSON字符串从数据库转换为PHP数组问题,php,arrays,json,Php,Arrays,Json,我正在尝试将这个JSON字符串转换为PHP数组。JSON字符串存储在我的数据库中,我已经检索到了它 { "users": "user1, user2" } 我需要将上面的JSON字符串转换成一个数组,如下所示,但是是动态的 $myArray = array("user1", "user2") 这是我的代码: $row = mysqli_fetch_array($result); $json = $row['json']; $decode = json_decode($json

我正在尝试将这个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包装。这将允许您轻松高效地执行搜索用户的查询。

显示其中一个动态字符串为什么要将其存储为逗号分隔的列表?JSON可以表示数组,所以为什么不在将其编码为JSON之前将其设置为数组呢?我确实在一个真实的表中有用户,但这个JSON是为了显示用户的朋友。谢谢,添加逗号后的空间……@丹尼尔赞,你应该有一个<代码>朋友<代码>表,这样你就可以做“<代码>之类的事了,告诉我所有拥有乔的朋友< /代码>。谢谢你,我会考虑这样做。我还在学习PHP和MySQL,到目前为止我所拥有的功能就是我现在所需要的。那么,如果我按照你的建议去做,我的代码应该是这样的吗$myArray=json_decode($json);