Как вернуть этот многомерный массив PHP как объект JSON? - PullRequest
1 голос
/ 21 ноября 2011

У меня есть этот код в моей модели, когда контроллер запрашивает получение всех сообщений для определенного пользователя:

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));

Я закрою вопрос через день, когда мой аккаунт позволит мне.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Закрытие вопроса, отвечая на него сам. Как объяснено в редактировании, это работает просто отлично:

echo json_encode(array('result' => $result));
0 голосов
/ 21 ноября 2011

json_encode($messages); здесь должно быть хорошо. Позвоните ему и проверьте вывод, чтобы увидеть, если это то, что вы хотите. Но json_encode должен обрабатывать вложенные массивы, не нарушая пот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...