@WiNNeR_tig

Вопрос по json_encode() / json_decode() и unset()?

Всё работает правильно
$arr = "[86,3414,453]";
$res = json_decode($arr);
echo "<pre>";
print_r($res);
echo json_encode($res);

Array
(
    [0] => 86
    [1] => 3414
    [2] => 453
)
[86,3414,453]

Перестаёт работать json_encode() как задумано
$arr = "[86,3414,453]";
$res = json_decode($arr);
unset($res[array_search(86, $res)]);
echo "<pre>";
print_r($res);
echo json_encode($res);

Array
(
    [1] => 3414
    [2] => 453
)
{"1":3414,"2":453}


Почему после unset() нельзя вернуть строку в вида [1,2,3] ?
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
перед json_encode делайте array_values

php.net/manual/ru/function.json-encode.php
Замечание:
При кодировании массива в случае, если его индексы не являются последовательными числами от нуля, то все индексы кодируются в строковые ключи для каждой пары индекс-значение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы