У меня похожая проблема с $array = ['00'=>'x','11'=>'y']
, который был преобразован в целочисленные ключи, потеряв цифру '0'.
Запись только для ответа через 5 лет после ...
Ответ KennyDs можно упростить,
$array = array_map('strval',$array);
... но, как прокомментировал MikeB, ответ KennyDs неправильный, правильный:
foreach($array as $key => $val)
$array[(string) $key] = $val;
или в (некрасивом) функционалеstyle,
$array = array_flip( array_map('strval', array_flip($array)) );
(без прямой проверки, как я проверял).
О проверке с помощью var_dump()
или var_export()
: показывать строку как число при разборе как число (например,. '123'
как 123
), но не потерянная строка (!), Пример array ( '00' => 'x', 11 => 'y',)
.