如何返回这个多维PHP数组作为一个JSON对象

How to return this Multidimensional PHP Array as a JSON object?

本文关键字:一个 对象 JSON 数组 何返回 返回 PHP      更新时间:2023-09-26

当控制器请求获取某个用户的所有消息时,我的模型中有以下代码:

public function get_messages($user_id) {
    $sql = "SELECT * 
            FROM messages 
            WHERE `to` = '$user_id'
            ORDER BY id DESC";
    $query = $this->db->query($sql);        
    foreach($query->result() as $row) {
        $messages[] = array(
            'id' => $row->id,
            'to' => $row->to,
            'from' => $row->from,
            'message' => $row->message,
            'star' => $row->star,               
            'timestamp' => $row->timestamp          
        );
    }
    return $messages;
}

下面是我的控制器中的代码:

$result = $this->inbox_m->get_messages($user['id']);

我怎么能返回结果作为一个JSON对象使用PHP的json_encode()函数?

对于简单的返回,我通常这样做:

json_encode(array('result' => true))

但是这些数组中的数组把我弄糊涂了

编辑

没关系,伙计们,在发帖之前应该先试一下。这很好:

echo json_encode(array('result' => $result));

我会在我的账户允许的一天内关闭这个问题。

json_encode($messages);在这里应该没问题。调用它并检查输出,看看它是否是您想要的。但是json_encode应该处理嵌套数组,而不需要流汗。

以自己的回答结束问题。就像在编辑中解释的那样,这工作得很好:

echo json_encode(array('result' => $result));