Вы можете вывести ключ в строку, но в конечном итоге он будет преобразован в целое число из-за неправильной настройки PHP. Посмотрите сами:
$x=array((string)123=>'abc');
var_dump($x);
$x[123]='def';
var_dump($x);
Из руководства PHP:
Ключ может быть целым или строковым. Если ключ является стандартным представлением целого числа, он будет интерпретироваться как таковой (т. Е. «8» будет интерпретироваться как 8, а «08» будет интерпретироваться как «08»). Поплавки в ключе усекаются до целого. Индексированные и ассоциативные типы массивов являются одним и тем же типом в PHP, которые могут содержать как целые, так и строковые индексы.