JSON_ENCODE do array multidimensional dando resultados diferentes

Ao fazer um json_encode em um array multidimensional em PHP, estou percebendo uma saída diferente simplesmente nomeando um dos arrays, ao invés de não nomenciá-los. Por exemplo:

$arrytest = array(array('a'=>1, 'b'=>2),array('c'=>3),array('d'=>4));
json_encode($arrytest)

dá uma matriz única de vários objetos json

[{"a":1,"b":2},{"c":3},{"d":4}];

enquanto simplesmente atribuindo um nome para a matriz do meio

$arrytest = array(array('a'=>1, 'b'=>2),"secondarray"=>array('c'=>3),array('d'=>4));
json_encode($arrytest)

cria um único objeto json com vários objetos json dentro

{"0":{"a":1,"b":2},"secondarray":{"c":3},"1":{"d":4}};

por que a 1ª opção não retornaria o mesmo resultado que a 2ª execpt com "1" no lugar de "secondarray"?

questionAnswers(3)

yourAnswerToTheQuestion