Я могу создать разреженный массив 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.)