json_encode将数组转换为对象

时间:2014-04-05 08:02:38

标签: php mysql arrays json

我已经创造了一个喜欢' social media website I'm working on的系统,但我对json_encode和json_decode有点麻烦。我使用数组存储谁喜欢帖子,所以我需要这两个函数使它可以存储,但由于某种原因,它有时会将对象保存到数据库:

{"1":"admin"}

而不是数组(我想要的):

["admin"]

这是我的代码:

if ($liked_by == NULL){ $liked_by = Array(); }
if (! in_array($user, $liked_by)){
  $liked_by[] = $user;
  $likes = $row['likes']+1;
  $liked_by = json_encode($liked_by);
  mysql_query("UPDATE $stream SET liked_by = '$liked_by' WHERE id = ".$id, $db)
    or die(mysql_error($db));
  mysql_query("UPDATE $stream SET likes = '$likes' WHERE id = ".$id, $db)
    or die(mysql_error($db));
} else{
  if(($liker = array_search($user, $liked_by)) !== false) {
    unset($liked_by[$liker]);
  }
  $likes = $row['likes']-1;
  $liked_by = json_encode($liked_by);
  mysql_query("UPDATE $stream SET liked_by = '$liked_by' WHERE id = ".$id, $db)
    or die(mysql_error($db));
  mysql_query("UPDATE $stream SET likes = '$likes' WHERE id = ".$id, $db)
    or die(mysql_error($db));
}

对于使用已弃用的mysql函数感到抱歉......

我只是不确定发生了什么。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用

json_decode($data,true);

其中$data是来自DB的保存数据。

上面将返回一个数组,您可以对其进行操作以便进一步操作。