Я могу создать разреженный массив php (или карту) с помощью команды:
$myarray = array(10=>'hi','test20'=>'howdy');
Я хочу сериализовать/десериализовать это как JSON. Я могу сериализовать его с помощью команды:
$json = json_encode($myarray);
что приводит к строке {"10":"hi","test20":"howdy"}. Однако, когда я десериализую это и передаю его массиву с помощью команды:
$mynewarray = (array)json_decode($json);
Кажется, я потерял любые сопоставления с ключами, которые не были действительными идентификаторами php. То есть mynewarray имеет отображение 'test20'=>'howdy', но не 10=>'hi' и '10'=>'hi'.
Есть ли способ сохранить числовые ключи в php-карте при преобразовании в json и обратно, используя стандартные функции json_encode/json_decode?
(Я использую PHP Version 5.2.10-2ubuntu6.4.)