我已经为网站创建了一个“喜欢”系统,但我在使用 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
是从数据库中保存的数据。
以上将返回一个数组,您可以对其进行操作以进行进一步的操作。
关于php - json_encode 将数组转为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22878219/