[英]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.