Ваш $results
в php - это массив объектов или ассоциативных массивов.Перед отправкой с использованием кастинга сделайте его массивом с индексами с числовым индексом:
// ASSUMING each $result object does not have its own nested arrays
foreach ($results as &$result) {
$result = array_values((array) $result);
}
Обратите внимание, что вы потеряете возможность получать элементы по имени столбца.
Но, пожалуйста, отойдите и подумайтеоткуда ваш результат $.
Если вы используете драйвер mysql, попробуйте сделать это при построении результата:
$results = array();
// Note we use MYSQL_NUM option, so $row looks like array('col1value', 'col2value')
while (FALSE !== ($row = mysql_result_array($resource, MYSQL_NUM))) {
$results[] = $row;
}
json_encode($results);