Когда я делаю json_encode многомерный массив в PHP, я замечаю другой вывод, просто назвав один из массивов, а не называя их. Например:
$arrytest = array(array('a'=>1, 'b'=>2),array('c'=>3),array('d'=>4));
json_encode($arrytest)
предоставляет один массив из нескольких объектов json
[{"a":1,"b":2},{"c":3},{"d":4}];
тогда как просто присваивание имени среднему массиву
$arrytest = array(array('a'=>1, 'b'=>2),"secondarray"=>array('c'=>3),array('d'=>4));
json_encode($arrytest)
создает один объект json с несколькими объектами json внутри
{"0":{"a":1,"b":2},"secondarray":{"c":3},"1":{"d":4}};
почему первый вариант не будет возвращать те же результаты, что и второй execpt с "1" вместо "secondarray"