php json_encode кодирует одни и те же данные дважды

Я получаю некоторые данные из базы данных и кодирую их в json:

$json = "";
if($result = $dbc->query($query)) {
    $num = $result->num_rows;
    for($i = 0; $i < $num; $i++) {
        $row = $result->fetch_array();
        $json .= json_encode($row);
        if($i != ($num-1)) {
        $json .= ',';
        }
    }
}

, но вместо того, чтобы получать строку json в формат:

{"name:"joe", "age":"22", "etc":"etc"}

Я получаю дублирование каждого значения, потому что оно дает мне имя элемента как индекс ассоциативного и неассоциативного массива. Итак, я получаю:

{"0":"joe", "name":"joe", "1":"22", "age":"22", "3":"etc", "etc":"etc"}

Хотя я все еще могу использовать json. Он по-прежнему в два раза больше, чем я хотел, и поэтому неэффективен. Есть ли способ заставить метод json_encode просто передать мне ассоциативный массив inices в качестве тегов json? (Без сомнения, неправильные слова для описания этих вещей)

Большое спасибо

8
задан Joe 11 January 2011 в 21:50
поделиться