Вы можете использовать AVG и группировать по
select id, avg(Difference )
from my_table
group by id
Как Вы настраиваете свой начальный массив?
Если Вы настраиваете его как:
array(
"1" => array(...),
"2" => array(...),
);
затем у Вас нет массива с числовыми индексами, но строками, и это преобразовывается в объект в мире JS. Это может произойти также, если Вы не устанавливаете строгий порядок (т.е. запускающийся в 0 вместо 1).
Это - выстрел в темноте, однако, потому что я не вижу Ваш исходный код: попытайтесь установить свой массив, не используя ключи вообще во-первых:
array(
array(...),
array(...),
);
Добавленная информация, которая подробно останавливается на ответе Seb.
php > print json_encode( array( 'a', 'b', 'c' ) ) ;
["a","b","c"]
php > print json_encode( array( 0 => 'a', 1 => 'b', 2 => 'c' ) ) ;
["a","b","c"]
php > print json_encode( array( 1 => 'a', 2 => 'b', 3 => 'c' ) ) ;
{"1":"a","2":"b","3":"c"}
php >
Примечание: его форматирование его этот путь с хорошей причиной:
Если необходимо было отправить
{"1":"a","2":"b","3":"c"}
как
["a","b","c"]
Когда Вы сделали $data[1]
в Php Вы возвратили бы "a", но на стороне JavaScript, Вы возвратите "b".
Распространенный способ протестировать на традиционный, непрерывный массив в php состоит в том, чтобы проверить на индекс '0'. Попытайтесь добавить, что к Вашему массиву, это будет, вероятно, считая это массивом вместо hashmap.
У меня была аналогичная проблема, заставил ее работать после добавления '' (одинарные кавычки) вокруг строки json_encode . Следуя моему файлу js:
var myJsVar = <?php echo json_encode($var); ?> ; -------> NOT WORKING
var myJsVar = '<?php echo json_encode($var); ?>' ; -------> WORKING