php - json_encode 将数组转为对象

标签 php mysql arrays json

我已经为网站创建了一个“喜欢”系统,但我在使用 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/

相关文章:

php - 组合多维数组

php - 将变量从 $_GET 传递到另一个页面

mysql - 根据已知 ID 连接多个表

java - playframework 2.4.2 ebean 集成

jquery - 如何获取JSON响应中的第三层数据?

c - 有没有一种好方法可以从字符串中删除一个字符而不复制它后面的所有字符?

javascript - WPML 在 javascript 中本地化

php - 在 nl2br 中只允许一个 br

php - 如何获得 $date + 5 以排除周末?

mysql - 将 FluentMySQL 与 steam 3 结合使用