Se fossi in te, non json_encode
ogni singolo array, ma unisci gli array insieme e quindi json_encode
l'array unito alla fine. Di seguito è riportato un esempio che utilizza 5.4
sintassi dell'array corto:
$out = [];
while(...) {
$out[] = [ 'id' => $i, 'name' => $row['name'] ];
}
echo json_encode($out);