繁体   English   中英

json_encode将数组变成对象

[英]json_encode turns array into an object

我已经为正在工作社交媒体网站创建了一个“喜欢”系统,但是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函数...

我不确定是怎么回事。 提前致谢。

您可以用作

json_decode($data,true);

其中$data是数据库中保存的数据。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM