PHP json_encode возвращает строки в виде массивов вместо объектов - PullRequest
1 голос
/ 11 июля 2011

Исходя из моего опыта, когда я json_encode данных из таблицы MySQL, вывод представляет собой объект, содержащий каждую строку как объект внутри.То, что я хочу сделать, это получить каждую строку в виде массива, как в примере ниже (там не нужны имена столбцов).Как я могу это сделать?

{ "Data": [
    ["1","Internet Explorer 4.0","Win 95+","4","X","1"],
    ["2","Internet Explorer 5.0","Win 95+","5","C","2"],
    ["3","Internet Explorer 5.5","Win 95+","5.5","A","3"],
    ["4","Internet Explorer 6","Win 98+","6","A","4"],
] }

Ответы [ 2 ]

4 голосов
/ 11 июля 2011

Используйте mysql_fetch_row [документы] , чтобы получить каждую строку.Это получит строку в виде числового массива, который также закодирован в виде массивов JSON:

$data = array();

while(($row = mysql_fetch_row($result))) {
    $data[] = $row;
}

echo json_encode(array('Data' => $data));
0 голосов
/ 11 июля 2011

НЕ ПРОВЕРЕНО в интерпретаторе: вы можете изменить тип переменной простым преобразованием типов:

$data = DB::get('SELECT * FROM `table` WHERE 1');
echo json_encode(array('Data' => (array)$data));

Также вы можете использовать следующую функцию: массив mysql_fetch_array (ресурс $ result [, int $ result_type])

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