Ситуация в том, что если затем эту строку отдать json_decode, то получится объект, а не массив.
Знаю, что json_encode принимает 3 параметра и второй из них options. Вот может быть второму параметру можно что-то передать, чтобы потом json_decode вернул исходный массив, а не объект?
нашёл ответ:
Создаём всё так же: $a = json_encode(array("a"=>"b","c"=>"d"));
Назад в массив так json_decode($a,true);// то есть второй параметр устанавливаем в true