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

时间:2016-03-29 20:00:42

标签: 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);
  $list = $decode->users;
  $myArray = explode(',', $list);

此代码在我的程序中不起作用,但是当我使用print_r打印数组时,如果我从非动态字符串中打印$ myArray,它看起来是相同的。这是一个问题,因为非动态字符串有效。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

更好的是更改数据库结构,以便用户在真实的表中,而不是用JSON包装。这将允许您执行轻松有效地搜索用户的查询。