Задать вопрос
TheExplay
@TheExplay
Верстальщик - Junior FrontEnd

Почему удаляются пустые элементы массива?

Всем привет, есть такой вот php скрипт
joxi.ru/MAjpqq7FvjEMOm

Передаю в функцию переменную $schedule, которая содержит в себе:
joxi.ru/YmENMM1sZweQO2
joxi.ru/4AkGqq0sMob6nA

На выходе получаю такой вот json:
joxi.ru/J2b3qqNC40BpZA

Хотя ожидал получить в виде:
joxi.ru/brRYZZEuQ7MeMA

Собственно вопрос, почему удаляются пустые элементы массива, и почему вместо текста символы?
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
MaxAlexQNEI
@MaxAlexQNEI
Web-Developer
Так и должно быть. Если в массиве подаваемом в json_encode есть недопустимые символы вроде кириллицы - json_encode преобразует их в UTF-8.

Для json_encode вторым аргументов можно задать параметр JSON_UNESCAPED_UNICODE - перестаёт кодировать многобайтные символы Unicode.

json_encode( $array, JSON_UNESCAPED_UNICODE ); // От PHP 5.4.0


По личной практике скажу - на некоторых проектах (с которыми я работал), весь проект использовал CP1251 (Windows-1251), из за этого json_encode() может работать не корректно и тем более с параметром JSON_UNESCAPED_UNICODE
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы